Я пытаюсь связать связанные модели во время посева базы данных в Laravel 4. В соответствии с документацией здесь, я могу сделать это следующим образом:
$user->roles()->attach(1);
Итак, в моей базе данных я запускаю:
$package = Package::create([
'name' => $faker->word,
'summary' => $faker->sentence,
'base_price' => $faker->randomFloat(2, 200, 10000)
]);
// Attach 1-5 randomly selected items to this package
foreach(range(1, 5) as $index)
{
$randomItem = Item::orderBy(DB::raw('RAND()'))->first();
$package->items()->attach($randomItem->id);
}
В этот момент уже были посеяны элементы пакетов, и они посеяны без проблем. Приведенный выше код дает это от Artisan:
[BadMethodCallException]
Call to undefined method Illuminate\Database\Query\Builder::attach()
Кто-то здесь кажется, что метод attach()
фактически не существует, а документы ошибочны, но я считаю, что трудно верить.
TL; DR Каков правильный способ создания отношений "много-ко-многим" в "Красноречии"?