【发布时间】:2018-09-05 15:34:24
【问题描述】:
我试图获取购物车中的食物列表以及收藏夹表。 我使用以下查询来访问它。在条件条款部分,我想检查食物是否在收藏夹表中它也会显示,或者它是否在购物车表中也会显示。但它无法检查 where 子句内部意味着食品 ID 在购物车表中但不在该用户中。所以它应该返回 cart_id 为 null 但它显示 cart_id 尽管该用户没有添加到他的 carts 表中。在收藏夹表中也发生了同样的情况。我怎样才能使它正确?
$foods = DB::table('foods')
->leftjoin('carts','carts.food_id','foods.id')
->leftjoin('favorites','favorites.food_id','foods.id')
->select('foods.food_name', DB::raw('carts.id as cart_id'),DB::raw('favorites.id as favorite_id'),'foods.id','foods.display_image','foods.price','foods.category_id','foods.description','foods.restaurant_id' )
->where('foods.restaurant_id','=',$request->Input(['restaurant_id']))
->orwhere(function ($query) {
$query->where('carts.user_id','=',Auth::user()->id)
->where('favorites.user_id','=',Auth::user()->id);
})
->get();
【问题讨论】:
-
我不知道你在问什么,但你真的应该学习雄辩。
-
能否请您发布您正在使用的数据库表和 Laravel 模型?
-
所以您想获得具有特定 restaurant_id 且必须在购物车或收藏夹表中的食物?
-
我想要属于该餐厅的食物列表,如果食物属于购物车或收藏夹,我想要该身份验证用户的 cart_id 和 favorite_id。如果它不存在,它应该将 cart_id 和 favorite_id 返回为 null。
标签: mysql laravel laravel-5 query-builder