Proje > Teklif > Sistemler şeklinde birbirine bağlı 3 tablom var.
Teklifler içinde proje idsi teklifler_sistemler tablomda da teklif ve sistem id sini tutuyorum.
Proje modelimde
public function proposals(){
return $this->hasMany('App\Proposal', 'project_id');
}
Şeklinde projelerime ait teklifleri getiriyorum. Teklifler içinde de ilgili sistemleri şu şekilde çağırıyorum.
public function systems(){
return $this->belongsToMany('App\System', 'proposals_systems');
}
Teklif alanında sisteme göre arama yapmak için şu yöntemi kullanıyorum:
public function scopeSearchSystem($query, $system){
$pivot = $this->systems()->getTable();
if ($system) $query->whereHas('systems', function ($q) use ($system, $pivot) {
$q->where("{$pivot}.system_id", $system);
});
}
Burada da istediğim sonucu alabiliyorum. Lakin aklıma takılan yer şurası. Bu arama işlemini projelerde yapacağım. Yani içinde seçilen sistemi bulunduran tekliflerin bağlı oldukları projeleri listelemem gerek. Bunu nasıl yapabilirim?