Yii Muitos estrutura para Muitos relacionamentos
-
18-09-2019 - |
Pergunta
O que é o método para salvar e atualizar muitos para muitos relação no quadro Yii?
Solução
Há uma melhor implementação como comportamento.
Outras dicas
A menos que você criar um modelo para a mesa entre as duas tabelas principais, sua única opção é usar DAO (Access Database Object) e especificar SQLs com ele.
Tenha um olhar em como demo do blog realiza esta tarefa.
uso MANY_MANY
tipo de relação com a configuração de muitos para muitos relação entre Models (Uma tabela associativa é necessária para quebrar um relacionamento muitos-para-muitos em relacionamentos um-para-muitos)
E agora você pode usar todas as funções relacionais de registos activos
A extensão a seguir faz o que quiser ... Yii Framework - Extensão: cadvancedbehavior
Uma coisa importante a nota: Em cada atualização, a extensão limpa todos os registros anteriores e cria novos. Então eu não iria utilizá-lo quando a tabela de intermediatry contém outros do que as chaves estrangeiras de dados extras.
Você pode configurar isso no mysql level..by vai visão relacional em cada mesa no phpmyadmin e fornecer necessário MANY_MANY uso condition..and relacional na classe modelo dentro relações ..
A questão é muito comum.
Normalmente componentes de dados com muitos para muitos relacionamentos aparecem sequencialmente e de forma independente. Então você só precisa fazer uma ação de inserção após o outro.
Se o seu relacionamento precisa de atualização dependente você deve utilizador SQL gatilhos no nível base de dados. Isso vai garantir a integridade dos dados e dar uma muito boa separação de lógica de negócios do aplicativo.
CREATE TRIGGER some_trigger
AFTER UPDATE ON some_table
...
END IF;
Uma maneira semelhante é incapsulate dados relacionais em um modelo lógico no nível do PHP (e por exemplo manipular com 2-3 modelos AR lá) e disparadores SQL Emulate lógicos nele.