Daniel Drummond
Criador Daniel Drummond 05/10/2021

Oi Carlos,

Cirei uma migration chamada branch_client (para criar uma relação entre a tablea branches e Client) e utilizei esse código:

$table->bigInteger('banch_id)->unsigned();

$table->foreign('branch_id')->references('id')->on('branches');

e etc

Mas quando rodo o comando php artisan migrate ele cria a tabela mas não cria as chaves estrangeiras.

Criador Daniel Drummond 05/10/2021

Ha estou usando o Laravel 8!!!

Daniel Drummond
Manager Carlos Ferreira 05/10/2021

Olá, Daniel!
Tudo bem?

Está correto a sua FK, pode fazer assim também:
$table->unsignedBigInteger('banch_id');

$table->foreign('banch_id')->references('id')->on('branches');

Ou simplesmente:
$table->foreignId('banch_id')->constrained();

Se quiser compartilhar o seu código dos arquivos de migrations, eu analiso e testo aqui para validar se realmente estão ok;

Carlos Ferreira
Criador Daniel Drummond 05/10/2021

O que fiz foi isso, mas por algum motivo não cria nem os campos nem as chaves estrangeiras.

Schema::create('branch_client', function (Blueprint $table) {
$table->id();
$table->bigInteger('branch_id')->unsigned();
$table->foreign('branch_id')->references('id')->on('branches')->onDelete('cascade');

$table->bigInteger('client_id')->unsigned();
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
$table->timestamps();
});
Daniel Drummond
Manager Carlos Ferreira 05/10/2021

Está local?
Experimenta dropar as tabelas e criar novamente:
php artisan migrate:fresh

Carlos Ferreira
Criador Daniel Drummond 05/10/2021

Sim esta local, tenho uma maquina com Ubuntu que utilizo como werserver. E uso o phpStrom para editar o código diratamente no server. E o terminal via ssh. Mas vou tentar novamente e se conseguir te falo. Obrigado

Daniel Drummond
Criador Daniel Drummond 05/10/2021

Consegui resolver, na verdade apaguei as tabelas e as refiz e funcionou, na verdade não sei o porque não estava dando certo.

Daniel Drummond
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!