Ich habe drei Tabellen & entsprechenden Modelle:Laravel Pivot Beziehung nicht eindeutig zuzuordnen Tabelle/Alias
Tabelle ------ Modell
Papiere ------ Papier
paper_stocks ------ Rohpapier
paper_stock_amounts ------ PaperStockAmount
Papier enthält diff. Arten von Papier. Rohpapier enthält verschiedene Orte, an denen diese Papiere gespeichert werden können PaperStockAmount enthält das Papier ID, die Lager-ID und die Menge, wie ein viele Papier zu bestimmen, sind auf Lager B.
Jetzt möchte ich aus dem Papier ausgehend überprüfen wie viele sind in jedem Vorrat. Im tun dies deshalb meiner Meinung nach.
@foreach($papers as $paper)
@foreach($paper->paperStockAmount as $ps)
<tr>
<td>{{ $ps->stock->name }}</td>
<td>{{ $ps->amount }}</td>
</tr>
@endforeach
@endforeach
Dieser jede Art von Papier zeigen sollten und in denen die Bestände zusammen mit dem Betrag, den sie in sind
Dies ist jedoch der Fehler:
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'paper_stock_amounts' (SQL: select `paper_stock_amounts`.*, `paper_stock_amounts`.`id` as `pivot_id`, `paper_stock_amounts`.`amount` as `pivot_amount` from `paper_stock_amounts` inner join `paper_stock_amounts` on `paper_stock_amounts`.`id` = `paper_stock_amounts`.`id` where `paper_stock_amounts`.`id` in (1, 2))
Die Beziehungen sind wie folgt definiert:
Papier
class Paper extends Model
{
public function paperStockAmount()
{
return $this->belongsToMany('App\PaperStockAmount', 'paper_stock_amounts')->withPivot('amount');
}
}
PaperStockAmount
class PaperStockAmount extends Model
{
public function paper()
{
return $this->hasOne('App\Paper', 'id', 'paper_id');
}
public function stock()
{
return $this->hasOne('App\PaperStock', 'id', 'stock_id');
}
}
Warum funktioniert das nicht?
Scheinbar hat viele Pivot nicht unterstützt. Nichts davon funktioniert leider. – Scarwolf
Was ist der Fehler? Und bitte zeigen Sie die Tabellenspalten in Ihrer Frage an. –