Wpis z mikrobloga

Muszę pobrać z bazy danych rekord do modelu, ale tylko wtedy, gdy posiada w momencie pobrania mniejszą ilość relacji niż zadeklarowana liczba określona w jednym z pól tego rekordu. Normalnie służy do tego metoda has(), o ile zna się wartość liczbową:

$this->model->has('relations', '<' , 10)->first();
a czy da się jakoś jako 3 parametr wrzucić odwołanie do pola pobieranego rekordu, czyli coś w ten deseń:

$this->model->has('relations', '<', 'model.max_relations')->first();
czy jedynym ratunkiem jest:

whereRaw('(select count(*) from relations where model.id = relations.model_id) < model.max_relations')
????

#laravel
  • 3
Model::has('relations', '<', DB::raw('model.maxrelations'))->first();
Działa, chociaż mi się mało podoba takie rozwiązanie. Sam jestem ciekaw czy jest lepsze rozwiązanie tego problemu.
W DB:raw model i max
relations są w backtickach jak coś.