Closed felipeabranches closed 3 years ago
Realizei um novo teste, dessa vez com as alterações dos testes 1 e 2, concomitantemente, e funcionou! Porém, teria como alcançar esse resultado sem a chave primária para "user_group_map"?
Crie a chave primária do registro.
id (primária) id_user, id_group
Resolvido e com boas práticas 👍
MySQL: 5.7.31 PHP: 7.3.21 Datalayer: 1.1.8
Estou com problemas em salvar múltiplas linhas em tabela sem chave primária. Possuo 3 tabelas: "user_account", "user_group" e "user_group_map". Em um formulário para criar ou editar a conta, posso escolher mais de um grupo para esse usuário. O usuário é criado ou editado na tabela "user_account", mas nada é salvo na tabela "user_group_map"
A tabela "user_group_map" possui apenas 2 campos INT: id_user e id_group.
GroupMapModel.php
AccountModel.php (resumido)
Ao salvar, o usuário e criado na tabela "user_account", mas nada na tabela "user_group_map", e recebo o erro
( ! ) Fatal error: Uncaught Error: Call to a member function data() on null in C:\wamp64\www\test\vendor\coffeecode\datalayer\src\DataLayer.php on line 267
Teste 1
Altero a linha 267 de C:\wamp64\www\test\vendor\coffeecode\datalayer\src\DataLayer.php para
$this->data = $this->find("{$this->primary} = :id", "id={$id}")->data();
Não exibe nenhum erro, salva a conta mas não os gruposTeste 2
Sem alterar C:\wamp64\www\test\vendor\coffeecode\datalayer\src\DataLayer.php Crio uma chave primária e edito GroupMapModel.php
Não exibe nenhum erro, salva a conta mas APENAS o último grupo selecionado. Acredito que isso se deva ao fato de prucurar pela chave primária e reescrever essa mesma linha na tabela o número de vezes igual ao número de grupos selecionados, restando salvo, portanto, apenas o último grupo selecionado.
Como posso resolver essa questão? Obrigado