0
我有一個笑話,joke_tags,tags表。我試圖讓所有與笑話ID匹配的標籤。Laravel belongsToMany,無法解決它
class Joke extends Model
{
public function tags() {
return $this->belongsToMany('App\Tag', 'joke_tags', 'tag_id', 'joke_id');
}
}
我的標籤型號:
class Tag extends Model
{
public function jokes() {
return $this->belongsToMany('App\Joke');
}
}
兩個功能tags()
和jokes()
不工作......我一直在用,現在奮鬥2小時。
我的數據庫佈局:
Schema::create('jokes', function (Blueprint $table) {
$table->increments('ID');
$table->string('author');
$table->longText('joke');
$table->timestamps();
});
Schema::create('joke_tags', function (Blueprint $table) {
$table->increments('ID');
$table->integer('joke_id')->unsigned();
$table->foreign('joke_id')->references('ID')->on('jokes');
$table->integer('tag_id')->unsigned();
$table->foreign('tag_id')->references('ID')->on('tags');
});
Schema::create('joke_votes', function (Blueprint $table) {
$table->increments('ID');
$table->integer('joke_id')->unsigned();
$table->foreign('joke_id')->references('ID')->on('jokes');
$table->string('IP');
$table->boolean('type');
});
Schema::create('tags', function (Blueprint $table) {
$table->increments('ID');
$table->string('tag');
});
那麼,爲什麼laravel承擔不同的主鍵?... – tempestor
因爲laravel假設你的主鍵被命名爲「ID」。你改變它,然後你需要告訴它你改變了什麼。 –
@tempestor這個答案對你有幫助嗎?我可以看到你在關係中也使用錯誤的語法,所以他們不工作。你解決了這個問題嗎? –