Estou construindo uma API com laravel e tentando fazer as migrações funcionarem. No entanto, esta migração falha comMethod Illuminate\Database\Schema\Blueprint::cascadeOnDelete does not exist.
public function up(): void
{
Schema::create('stuff', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('image');
$table->timestamps();
$table->cascadeOnDelete();
});
}
Meu aplicativo é o laravel 10, mas esse recurso está na documentação do laravel 10 e 11. Como é que esse método não existe?
O
cascadeOnDelete()
método está disponível na classeIlluminate\Database\Schema\ForeignIdColumnDefinition
e não na classeIlluminate\Database\Schema\Blueprint
, e isso é lógico porque você adicionaCASCADE
restrições nas chaves estrangeiras.Você provavelmente pretendia escrever algo assim:
Observe que todas as restrições de chave estrangeira são adicionadas após o
constrained()
método.