【发布时间】:2021-11-02 08:01:39
【问题描述】:
我正在尝试使用 slug 在 2 个表之间获取数据, 当我使用 Eloquent 时,一切都很好,但是如何在查询生成器中转换该查询。
雄辩的查询:
$results = Product::orderBy('id','desc')->with('categories')->whereHas('categories', function ($query){
$query->where('slug', request()->sub_category);
})->paginate(24);
这里我使用了两个表产品和类别。
查询生成器:
$results = DB::table('products')
->leftJoin('wishlists', 'products.product_id', '=', 'wishlists.product_id')
->select('products.*', 'wishlists.wishlist_id', 'wishlists.user_id')
->with('menus')
->whereHas('categories', function ($query){
$query->where('slug', request()->category);
})
->orderBy('products.name', 'asc')
->paginate(24);
但我在这里使用 3 个表格,产品、菜单和愿望清单。 Bcoz 当用户进入产品页面时,我也会突出显示愿望清单的产品。
错误:
Call to undefined method Illuminate\Database\Query\Builder::with()
【问题讨论】:
-
with()仅适用于 Eloquent 模型。即Product::with('menu')
标签: laravel eloquent laravel-8 laravel-query-builder