首页 > 解决方案 > 如果 items.myfavourite 返回的不是 false,我想要 items.myfavourite =true。我怎样才能做到这一点

问题描述

     $cat_query->with([
          'items' => function ($query) use($type, $id) {
              $query->where($type, $id)->with('image', 'addonCategory.addons', 'reviews');
          },
          'items.myfavourite' => function ($query) use($user_id) {
              $query->where('user_id', $user_id);
          }
      ]);

如果 items.myfavourite 返回的不是 false,我想要 items.myfavourite =true。我怎样才能做到这一点

标签: phplaraveleloquent

解决方案


也许你可以使用这个

    $cat_query->with([
        'items' => function ($query) use ($type, $id, $user_id) {
            $query->where($type, $id)
                ->with('image', 'addonCategory.addons', 'reviews')
                ->withCount(['myfavourite' => function ($query) use ($user_id) {
                    $query->select(DB::raw('IF(count(*) > 0, "true", "false")'))->where('user_id', $user_id);
                }]);
        }
    ]);

推荐阅读