Я пытаюсь использовать отношение многие ко многим в одной и той же модели Eloquent.Модель представляет один элемент в магазине и может быть связана со многими другими элементами.
Это текущая миграция модели RelatedItem
:
Schema::create('related_items', function (Blueprint $table) {
$table->primary(['item_id', 'related_id']);
$table->integer('item_id')->unsigned()->index();
$table->foreign('item_id')->references('id')->on('items');
$table->integer('related_id')->unsigned()->index();
$table->foreign('related_id')->references('id')->on('items');
$table->timestamps();
});
И это отношение вItem
модель:
public function related()
{
return $this->belongsToMany('App\Item', 'related_items', "related_id");
}
Я создал несколько отношений через DatabaseSeeder
, который вставляет эти записи в мою базу данных:
DB::table('related_items')->insert([
'item_id' => 0,
'related_id' => 1,
]);
DB::table('related_items')->insert([
'item_id' => 0,
'related_id' => 2,
]);
Я ожидал получить 2 связанныхitems, но вместо этого дважды получил элемент с идентификатором 0 (из которого вызывается отношение).
Что-то не так с моим кодом?Заранее спасибо.