Laravel Eloquent запрос с использованием где

У меня есть две модели. Статус и SaleDetails.

Status
------
id
name
slug

Я не определил никаких отношений между Status и SaleDetails.

SaleDetails
-----------
id
id_statuses //connects it to the status table
id_products
price
qty

в модели:

  public function status(){
return $this->belongsTo('App\Status', 'id_statuses', 'id');
}

Поэтому я пытаюсь получить все заказы, чей статус соответствует определенному слагу.
Например dd($this->sale_details->where('status.slug', 'pending')

С чем я использую это:

$orders = $this->sale_details->with('product', 'status')->today()->get();

Я должен быть в состоянии отфильтровать их по статусу slugs во внешнем интерфейсе, но я хочу просто сделать это прямо отсюда.

Какой лучший способ пойти по этому поводу?

2

Решение

Вы должны использовать whereHas() это позволяет вам указать дополнительные фильтры для связанной модели для проверки.

Чтобы применить условие где вы можете использовать whereHas() лайк,

$status = "pending";

$this->sale_details->whereHas('status', function($q) use ($status){
$q->where('slug', $status);
})->get();
2

Другие решения

я думаю, лучше, чем использовать построитель запросов если вы хотите быстрый процесс

-2

По вопросам рекламы [email protected]