【问题标题】:What is the meaning of Eloquent's Model::query()?Eloquent 的 Model::query() 是什么意思?
【发布时间】:2019-01-02 04:09:03
【问题描述】:

谁能详细解释一下Eloquent的Model::query()是什么意思?

【问题讨论】:

  • 它返回给定模型的查询构建器!

标签: laravel eloquent laravel-5.6 laravel-query-builder


【解决方案1】:

每当您在 Eloquent 中查询模型时,您都在使用 Eloquent 查询构建器。 Eloquent 模型使用魔术方法(__call、__callStatic)将调用传递给查询构建器。 Model::query() 返回此查询生成器的一个实例。

因此,由于 where 和其他查询调用被传递给查询构建器:

Model::where()->get();

等同于:

Model::query()->where()->get();

过去我发现自己在使用 Model::query() 时需要实例化查询,然后根据请求变量构建条件。

$query = Model::query();
if ($request->color) {
    $query->where('color', $request->color);
}

希望这个例子有所帮助。

【讨论】:

  • 感谢@Devon。你能提供文档的参考吗?
  • 您到底在寻找什么文档?查询生成器的?您可以查看 API 文档或 Model 类本身以查看它返回的内容。
  • 我们可以在这上面加入吗?
  • @Shulz 我建议使用 Eloquent 中内置的关系方法,而不是自己加入 eloquent 模型。否则,您可以单独使用查询构建器并编写返回松散类型对象的查询
猜你喜欢
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 2022-01-22
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
相关资源
最近更新 更多