【问题标题】:2 queries on the same model Laravel同一模型 Laravel 上的 2 个查询
【发布时间】:2021-11-19 11:22:55
【问题描述】:

我想从 Course 表中获取所有行,其 userId$userId 。从该列表中,我想选择具有id 字段值与输入值$id 相同的行。我尝试了下面的一个。它返回null。有什么解决办法吗?

$course=Course::where('userId',$userId)->pluck('id');
$data=$course->where('id',$id)->first();
dd($data);

【问题讨论】:

  • 你为什么不在第一个查询中使用 multi where $course=Course::where('userId',$userId)->where('id, $id)
  • @Yogendra 解决了这个问题。谢谢
  • 或者最好在一个查询中使用它$course = Course::where([ ['userId','=',$userId], ['id,'=', $id] ])->first();

标签: php laravel eloquent laravel-8 query-builder


【解决方案1】:

您不应该使用“pluck”——它只是拉出指定的列来匹配记录,没有别的。因此,您的 $course 集合(即从您的第一行返回的内容)只是一个包含 ID 的集合,没有其他内容。

您可以将多个“where”子句链接在一起:

$course = Course::where('userID', $userID)->where('id', $id)->first();
dd($course);

【讨论】:

    【解决方案2】:

    您可以使用简写,它可以让您在 where 方法中传入两个搜索参数。

    $course = Course::where([
      'id' => $id,
      'userID' => $userID
    ])->first();
    

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 2015-03-04
      • 2022-11-10
      • 2016-05-04
      • 2018-09-27
      • 2011-03-19
      • 2015-04-07
      • 1970-01-01
      • 2017-11-04
      相关资源
      最近更新 更多