我正在使用laravel構(gòu)建一個API,并試圖使遷移工作。但是,使用Method 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();
});
}
我的應(yīng)用程序是laravel 10,但這個功能在laravel 10和11的文檔中。為什么這種方法不存在?
cascadeOnDelete()
方法在類Illuminate\Database\Schema\ForeignIdColumnDefinition
上可用,而在類Illuminate\Database\Schema\Blueprint
上不可用,這是合乎邏輯的,因?yàn)槟谕怄I上添加了CASCADE
約束。你可能想寫這樣的東西:
請注意,所有外鍵約束都添加在
constrained()
方法之后。