/ / Laravel Auswahl aus Pivot-Tabelle - PHP, Laravel, Eloquent, Pivot-Tabelle

Laravel-Auswahl aus Pivot-Tabelle - PHP, Laravel, eloquent, Pivot-Tabelle

Ich habe drei Tabellen: Benutzer, Elemente und Benutzerelemente. Ein Benutzer hat viele Elemente und ein Element gehört vielen Benutzern.

**Users**
id
username
password

**Items**
id
name

**User_items**
id
user_id
item_id

Modelle:

class User extends Eloquent {
public function items()
{
return $this->belongsToMany("Item", "user_items", "item_id", "user_id");
}
}

class Item extends Eloquent {
public function users()
{
return $this->belongsToMany("User", "user_items", "user_id", "item_id");
}
}

Ich muss alle Artikeltabellen auswählen, ausdrucken und die Zeilen markieren, die zu einer bestimmten Benutzer-ID = 1 gehören.

Bildbeschreibung hier eingeben

Auswahl markierte Ausgabe:

Bildbeschreibung hier eingeben

Was ist der richtige Weg (im Laravel-Stil)?

Antworten:

1 für die Antwort № 1

Du kannst es so benutzen

public function user_items()
{
return $this->belongsToMany("User", "user_items", "user_id", "item_id")->withPivot("id");
}

Auf diese Weise können Sie auf Werte der dritten Tabelle zugreifen.

Einige nützliche Links http://www.developed.be/2013/08/30/laravel-4-pivot-table-example-attach-and-detach/ http://vegibit.com/many-to-many-relationships-in-laravel/

http://laravel.com/docs/4.2/eloquent


0 für die Antwort № 2

Sie können es so machen ...

class User extends Eloquent {
public function items()
{
return $this->belongsToMany("Item", "user_items", "item_id", "user_id")->withPivot("id");
}
}

class Item extends Eloquent {
public function users()
{
return $this->belongsToMany("User", "user_items", "user_id", "item_id")->withPivot("id");
}
}

Vom Controller ..

$user_id = 2;
Item::with(["users"=>function($q) use ($user_id){$q->where("user_id",$user_id);}])->get();

In der Ansicht zum Zeitpunkt der Auflistung einer Zeile können Sie die Zeile markieren, indem Sie nur eine Bedingung verwenden, da jedes Element -> Benutzer leer ist oder nicht.