【问题标题】:Getting id of products that belong to category获取属于类别的产品的ID
【发布时间】:2016-12-09 11:17:24
【问题描述】:

我有模型多对多(包括数据透视表)。我只需要提取属于某个类别的产品。我正在尝试这个,但它给了我所有的产品:

 $products = User::whereHas('category', function ($query) {
     $query->where('id','1');
 })->get();

where 中的1 仅用于测试,因为当我将$id 放在查询之外定义时,它无法识别它。

【问题讨论】:

  • 请展示真实的数据结构和关系。
  • 试试这个:$products= User::whereHas('category', function ($query) { $query->where('id', '=', '1'); })->get();
  • @IndrasinhBihola where('id', '=', '1')where('id', '1') 相同
  • 展示你的模型和关系。
  • 您是要获取products 还是users?为什么要使用Users 模型来获取Products

标签: php laravel laravel-5 eloquent laravel-5.2


【解决方案1】:

试试这个。

$products= User::whereHas('category', function ($query) use ($id) {
            $query->where('id', $id);
        })->get();

【讨论】:

  • 这只是将$id 传递到闭包范围内,但不能解决 OP 问题。
  • 您试图以错误的方式访问产品。你能展示产品、类别和用户之间的关系吗?
  • 如果你想访问产品,你无法通过查询用户模型来做到这一点。如果你想得到用户的产品,做
  • $user->产品
【解决方案2】:

也许这里的fetchProducts 方法会有所启发:Getting product brands, their categories and associated products

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多