Laravel “undefined method Éclairer\Database\Query\Builder::attach()”

J'essaie d'associer des modèles liés au cours de l'amorçage de base de données dans Laravel 4. Selon la documentation de ici, je peux faire comme ceci:

$user->roles()->attach(1);

Donc, dans ma base de données de la graine, je suis en cours d'exécution:

$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);
}

Les paquets éléments ont déjà été ensemencées à ce point, et ils semences sans problèmes. Le code ci-dessus donne à cet Artisan de bien:

[BadMethodCallException]                                              
Call to undefined method Illuminate\Database\Query\Builder::attach()

Quelqu'un ici semble penser que le attach() méthode n'existe pas réellement et que les documents sont faux, mais je trouve cela difficile à croire.

TL;DR Quelle est la bonne façon de créer plusieurs-à-plusieurs liens dans Éloquent?

  • Vous n'avez pas de nous montrer le code dans votre items() méthode.
InformationsquelleAutor glasstree | 2014-03-19