为什么每次查询都会调用 query () 方法?

类似于这样:

file

没有这个方法不是也是可以正常查询的吗

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
leo
最佳答案

不加也可以,加 query() 是为了配合 laravel-ide-helper 做代码提示

5年前 评论
讨论数量: 11
leo

不加也可以,加 query() 是为了配合 laravel-ide-helper 做代码提示

5年前 评论
leo

不加也可以,加 query() 是为了配合 laravel-ide-helper 做代码提示

5年前 评论
qbhy

@leo 加了 query 是为了让 IDE 更好找方法,因为query不是魔术方法实现的。 static 的 where、whereIn 这些都是魔术方法实现的,我建议加 query ,因为最终 eloquent 也会在经过 n 多魔术方法后调用这个函数。

5年前 评论
mouyong

@leo 关于调用的时候

file

如果有时候恰好需要在这个位置加。然后没有使用 _ide_helper.php ,我认为有个 query() 会更加方便。想了解下你的看法。谢谢 :grin:

5年前 评论
mouyong

file

而且感觉在有 query 的时候,下面的查询排列都是很整齐的。

5年前 评论
mouyong

query 的源码是

public static function query()
{
    return (new static)->newQuery();
}

得到的是一个 子类 Model 实例。

如果依赖静态调用。它需要 经过 callStatic -> call -> ...-> newQuery 才能调用

关于性能上面有什么区别吗?个人认为直接调用得到 newQuery 实例。会比绕一圈后得到实例更快一点。虽然有的时候基本可以忽略不记这一点点性能损耗。

5年前 评论
leo

@96qbhy @蜗牛

这只是一个编码习惯问题,对于不使用 PHPStorm 的开发者来说少写一个 query() 可能会提升他的开发效率,Laravel 本来就是一个为快速开发而生的框架,既然加不加 query() 都能达到目的,那就是哪个写起来顺手就用哪一个咯。

还是那个观点,编程没有唯一解。

5年前 评论
mouyong

@leo 赞同,但是如果在一个团队中。有的人有加。有的人不加。那这样的情况呢?投票定胜负,得出最后的规范吗?

5年前 评论
leo

@蜗牛 技术 Leader 定咯

5年前 评论
mouyong

@leo 嗯嗯。了解了。谢谢 :grin:

5年前 评论

加了可以使用代码提示

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!