в самом методе "trafficSettings" написать так $this->hasMany(TrafficSettings::class, 'from_offer_id')->whereDoesntHave('webmasters') => получу запись без webmasters
Вопрос почему так и можно ли не переписывая метод trafficSettings получать записи с нужным мне условием ?
не должно такого быть, показывай скринами, ошибка где-то еще. мб ты это в каком-то цикле используешь и неправильно дебажишь, или опустил какие-то важные моменты
> в самом методе Имхо если это метод trafficSettings внутри модели Offer , то там второе 'from_offer_id' это foreign key индекс в таблице (?) traffic_settings (traffic_settings.from_offer_id поле мб) модели TrafficSettings. По моей логике он должен выдавать связные настройки трафика для оффера. Что он и делает, смотрит в traffic_settings from_offer_id и по этой id смотрит id в таблице offers, связывает offer и TrafficSettings. Всякие штуки типа ->whereDoesntHave('webmasters') уже я думаю вызывать там где логика реализуется, не в модели. Ну или в модели отдельный метод создать который отдаст связные TrafficSettings, только которые без webmasters Короче можно получить как в первом варианте, не залезая в модель. Получается же получать сейчас. <?php namespace App\Http\Controllers; use App\Models\Post; class TutorialController extends Controller { public function index() { return Post::whereDoesntHave('comments', function ($query) { $query->where('content', 'like', 'code%'); })->get(); } } Вот так можно доп where условия добавлять ещё https://www.laravelia.com/post/laravel-doesnthave-and-wheredoesnthave-example https://laravel.su/docs/8.x/eloquent-relationships
Обсуждают сегодня