Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhaba Livewre ile filtreleme yaptığım bir tablom mevcut one to many bağlantısının olduğu bir modelde son kaydı çekmek için bir fonksiyon daha yazdım fakat listeleme kısmını doğru listelerken filtreleme yatığımda hatalı listeliyor.
Model

public function notes()
    {
        return $this->hasMany(Note::class);
    }

    public function latest_note()
    {
        return $this->hasOne(Note::class)->latest('id');
    }

Controller

 $companies=CandidateCompany::where('project_id',$this->project_id)
        ->when(!in_array(Auth::user()->role_id,[1,2]), function($q){
            $q->where('user_id',Auth::id());
        })
         ->when($this->byStatus, function($q){
            $q->where('statu',$this->byStatus);
        })
        ->when($this->bySuccessStatus, function($q){
            $q->whereHas('latest_note',function($l){
               $l->where('success_status',$this->bySuccessStatus);
            });
        })
        ->orderBy($this->sortColumnName, $this->sortDirection)
        ->orderBy('id','asc')
        ->paginate($this->perPage);

örneğin bySuccessStatus filtrelemesi ile successfull olanları listelemem gerekiyor ama tek tük unsuccessfull'da geliyor.

  • mgsmus bunu yanıtladı.
  • MuhammedFurkanAymergen İlişkiniz yanlış (isimlendirme de yanlış):

    public function latestNote(): HasOne
    {
        return $this->hasOne(Note::class)
            ->ofMany('id', 'max');
    }
    ->when($this->bySuccessStatus, function($q){
        $q->whereRelation('latestNote', 'success_status', $this->bySuccessStatus);
    })

    MuhammedFurkanAymergen İlişkiniz yanlış (isimlendirme de yanlış):

    public function latestNote(): HasOne
    {
        return $this->hasOne(Note::class)
            ->ofMany('id', 'max');
    }
    ->when($this->bySuccessStatus, function($q){
        $q->whereRelation('latestNote', 'success_status', $this->bySuccessStatus);
    })