Controle para não apagar registro com dependência Preciso de um norte para uma logica de proteção de dados! Como implemento um maneira de impedir que se exclua um dado que esta associado a uma tabela? ex: não posso permitir que excluam "tipos de serviço" se o mesmo estiver cadastrado em uma ordem de serviços! Como implementaria essa situação? em onDelete?...
AM
Controle para não apagar registro com dependência  
Fechado
Preciso de um norte para uma logica de proteção de dados!
Como implemento um maneira de impedir que se exclua um dado que esta associado a uma tabela?

ex: não posso permitir que excluam "tipos de serviço" se o mesmo estiver cadastrado em uma ordem de serviços!

Como implementaria essa situação? em onDelete?

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (6)


LC

Eu costumo deixar isso no relacionamento do banco de dados.
AM

Mas bancos com sqlite não tem funções tipo INODB
FC

Simples modifique o model não fazendo o delete em cascata.
IF

Augusto , talvez isso resolva no onDelete:
<?phppublic function onDelete($param)    {        // define the delete action        $action = new TAction(array($this, 'Delete'));          $action->setParameters($param); // pass the key parameter ahead                TTransaction::open('seu_banco');        $repository = new TRepository('Sua_Tabela_Vinculada');        $criteria = new TCriteria;        $criteria->add(new TFilter('id_tabela_vinculada','=',$param['key'])); //Verifica se há registros com o id passado        $object = $repository->load($criteria);        if ($object) //Se existir, mostra mensagem e retorna false        {            new TMessage('error','Registro não pode ser excluído');            return false;        }        else        {            // shows a dialog to the user            new TQuestion(AdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);        }    }?>
AM

Perfeito! o que acontece é que eu estou desenvolvendo uma nova versão de um sistema, o próprio já existe e utiliza a base em modo mysam então preciso de recursos que me permitam contornar isso!
PD

Ou mais resumidamente:

<?phpif (TabelaVinculada::where('id_tabela_vinculada','=',$param['key'])->count() > 0)?>


www.adianti.com.br/framework_files/tutor/index.php?class=CollectionS