Burada bugünün tarihinden büyük ve eşit olan eğitimleri listelemesi için ilişkiye bir where sorgusu ekledim. Fakat halen eski eğitim tarihli olanları da getiriyor.
Bir yerde yanlış mı yapıyorum.
Model ilişkisi
public function education()
{
return $this->hasOne(ProductPriceEducation::class);
}
Kodlar.
$products = Product::with(['property' => function ($q) {
$q->select(['features', 'for_who', 'product_id']);
}])
->whereStatus(1)
->where('show', 1)
->where('code', '!=', 1)
->where('is_roketable', true);
$products = $products
->with(['prices.education' => function ($q) {
return $q->where('date','>=',Carbon::now())->select(['date', 'start_time', 'end_time', 'time', 'subscriber', 'certified']);
}])
->with(['prices.education.educator' => function ($q) {
return $q->where(function ($q1) {
return $q1->doesntHave('educator')
->orWhereHas('educator', function ($q2) {
return $q2->where('visibility', 1);
});
});
}])
->where('product_type', 'online_education');
$data['products'] = $products->select([
'id', 'name', 'image', 'commission', 'price',
'buy_now', 'type', 'short_desc', 'pricing_desc',
'unique_id', 'product_type', 'discount_show_status',
'annual_payment', 'pre_register',
'last_pre_register_date', 'product_desc', 'product_status',
])->get()->toArray();