【发布时间】:2019-01-02 04:09:03
【问题描述】:
谁能详细解释一下Eloquent的Model::query()是什么意思?
【问题讨论】:
-
它返回给定模型的查询构建器!
标签: laravel eloquent laravel-5.6 laravel-query-builder
谁能详细解释一下Eloquent的Model::query()是什么意思?
【问题讨论】:
标签: laravel eloquent laravel-5.6 laravel-query-builder
每当您在 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);
}
希望这个例子有所帮助。
【讨论】: