1
嗨我想使用多對多多態但不知何故它不工作我附上我的代碼可以找出我做錯了什麼?Laravel多對多多態關係不起作用
我的移民:
Schema::create('stickers', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('type');
$table->timestamps();
});
Schema::create('stickables', function (Blueprint $table) {
$table->integer('sticker_id')->nullable();
$table->integer('stickable_id');
$table->string('stickable_type');
$table->primary(['sticker_id', 'stickable_id', 'stickable_type']);
$table->foreign('sticker_id')
->references('id')->on('stickers')
->onDelete('cascade');
$table->timestamps();
});
和我的模型
旅行模式:
public function stickables()
{
return $this->morphToMany(Stickable::class, 'stickable');
}
Stickable型號:
public function trips()
{
return $this->morphedByMany(Trip::class, 'stickable');
}
控制器:
public function store(Request $request)
{
$trip = new Trip();
$trip->name = $request->name;
$trip->desc = $request->desc;
$trip->creator_id = Auth::user()->id;
$trip->save();
$tags=$request->tags;
$trip->stickables()->attach($tags);
$trip->save();
return redirect('/trip');
}
你能指定什麼不起作用嗎?你期待的結果是什麼?你得到的結果是什麼? – Matey
@Matey確定我想要做這樣的事情'$ trip-> stickables() - > get()'但是我什麼也沒看到我的數據庫stickables表和sticker_id始終爲空 – MohammadrezA
@MohammadrezA你可以嘗試使用同步方法,而不是附加'$ trip-> stickables() - > sync($ tags)' – Gadzhev