Schema::table('performance', function($table)
{
$table->foreign('song_id')
->references('id')
->on('songs')
->onDelete('cascade');
});
Schema::table('performance', function($table)
{
$talbe->foreign('artist_id')
->references('id')
->on('artists')
->onDelete('cascade');
});
我收到错误:"在非对象" 上调用成员函数foreign()。
答案 0 :(得分:3)
您不能将多个命令用于外键。您只需要一个外键命令并组合您要定义的所有行。这是你应该运行的代码。
Schema::table('performance', function (Blueprint $table)
{
$table->unsignedInteger('song_id');
$table->unsignedInteger('artist_id');
$table->foreign(['song_id','artist_id'])->references(['id','id'])
->on(['song','artists'])->onDelete(['cascade','cascade']);
});
希望它有所帮助!
答案 1 :(得分:0)
检查对象名称从 $talbe
到$table
Schema::table('performance', function (Blueprint $table)
{
$table->foreign('song_id')
->references('id')
->on('songs')
->onDelete('cascade');
$table->foreign('artist_id')
->references('id')
->on('artists')
->onDelete('cascade');
});
编辑:已更新!对于你的代码,$ table应该是Blueprint类的实例。这可能是造成这个问题的原因!