Ho tre tabelle: utenti, articoli e user_items. Un utente ha molti articoli e un oggetto appartiene a molti utenti.Laravel 4 eloquente tabella pivot
Le tabelle:
Users
id
username
password
Items
id
name
equipable
User_items
id
user_id
item_id
equipped
I modelli:
class User extends Eloquent {
public function items()
{
return $this->belongsToMany('Item', 'user_items')
->withPivot('equipped');
}
}
class Item extends Eloquent {
public function users()
{
return $this->belongsToMany('User', 'user_items');
}
}
nel perno (user_items) tavolo Ho una colonna molto importante denominata "attrezzato".
Ho un modulo in cui gli utenti possono equipaggiare, disequipaggiare e lanciare oggetti. Questo modulo ha un campo nascosto con l'ID della riga della tabella pivot (user_items). Quindi, quando un utente tenta di equipaggiare un oggetto, il sistema controlla se l'articolo è equipabile.
Quindi, voglio un oggetto con i dati pivot e i dati dell'elemento, in base a item_id dalla tabella pivot, posso inviare al gestore (dove viene gestita tutta la logica).
Quindi, quello che devo fare è prima accedere alla tabella pivot e quindi accedere alla tabella degli articoli.
Qualcosa di simile (non funziona):
$item = User::find(1)->items->pivot->find(1);
Questo è possibile fare?
Grazie! Questo mi ha aiutato - dopo 2 ore sbattendo la testa dalla scrivania. –
per maggiori dettagli fare riferimento a http://laravel.com/docs/eloquent#working-with-pivot-tables –
:) Yay! mi ci è voluto un po 'per capire che ho dimenticato "-> pivot". +1 – rofavadeka