zwackyが言ったことは完全に(編集:最終的には完全に正しくないかもしれません)密接な関係に当てはまりますが、あなたの状況ではネストされた関係があります:
Vendor -> Equipment -> Ticket
次に、特定のベンダーのチケットを取得するには、次のようにベンダー モデルでリレーションを定義します。
class Vendor extends Eloquent {
public function equipment()
{
return $this->hasMany('Equipment');
}
public function tickets()
{
return $this->hasManyThrough('Ticket', 'Equipment');
}
class Equipment extends Eloquent {
public function tickets()
{
return $this->hasMany('Ticket');
}
public function vendor()
{
return $this->belongsTo('Vendor');
}
class Ticket extends Eloquent {
public function equipment()
{
return $this->belongsTo('Equipment');
}
ベンダーの合計チケット数を取得するには (現在開いていません):
Vendor::find($id) // retrieve particular vendor
->tickets()->count(); // get count on tickets table
// and this way you retrieve collection of related tickets
Vendor::find($id) // retrieve particular vendor
->tickets; // get Eloquent Collection
また、役に立つかもしれません: http://softonsofa.com/querying-relations-with-eloquent-in-laravel-4/