atach
[Finalizado Pelo Aluno]

se eu vou adicionar uma permissao a um usuario, o primeiro usuario por exemplo: Como eu verifico se esse usuario já não tem essa permissao já cadastrada? Se eu não faço nenhum if, ele vai inserir duas permissões, como voce disse, o attach não ta nem ai, ele insere de qualquer maneira, tendo ou não. Qual a melhor estratégia? Entendeu minha duvida ? Nao sei se fui muito claro
dessa forma resolveria o problema. Estou errado em fazer assim?

Nesse caso não resolveria 100% o problema.
Quero saber por exemplo: No meu banco, tenho 3 permisões default: Permissão 1, 2 e 3.
Certo. agora, quero verificar, se ele tiver permissao no 1, ai não deixo ele inserir novamente para 1, mas se ele tenta cadastrar a permissao 2 e essa permission ainda não esta cadastrada, ai sim pode ser inserida. Existe alguma forma de fazer isso facilmente?

Olá, Rafael!
Tudo bem?
Algumas estratégias possíveis:
1) Usar o método sync para atualizar os relacionamentos, neste caso, sempre que for inserir um novo, precisa enviar os que já estão vinculados.
2) Fazer um if, como você fez, e inserir apenas os que ainda não estão vinculados, usando o método attach
3) Dar de opção para vincular apenas os registros ainda não vinculados.
Neste exemplo, retornamos apenas os roles que o usuário ainda não tem vinculo: https://github.com/especializati/larafood/blob/master/app/Models/User.php#L73
Depois disso, basta usar o método attach para vincular os novos roles ao usuário.

Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!