【问题标题】:Using find vs. get in CakePHP 3在 CakePHP 3 中使用 find 与 get
【发布时间】:2014-11-09 19:32:51
【问题描述】:

我以这种方式清理了我的一个控制器中的一些功能:

旧功能:

return $this->find()
    ->where(['id' => $id])
    ->first();

新:

return $this->get($id);

哪个更快,哪个更受欢迎?

【问题讨论】:

    标签: cakephp query-builder cakephp-3.0


    【解决方案1】:

    在性能方面应该几乎没有区别,只需查看源代码和/或简单地对其进行测试。在1000 迭代中,我可以看到0.0001 秒的差异,这无需担心。

    一旦the primary key and the alias 被“缓存”(默认情况下应该在表类为instantiated 和烘焙时分别为initialized 时发生),构建查询所需的额外处理应该是绝对最少的。

    那时,几乎唯一的区别应该是get() 更短,而throws an exception 则在找不到记录时更短。

    另请参阅http://book.cakephp.org/3.0/en/orm/table-objects.html#loading-entities

    【讨论】:

    • @relinquish:总结一下:当你知道 ID 时使用 get(),期望它存在并准确搜索(例如,编辑表单,查看 ctp),否则使用 find()。就是这么简单(如果你仔细想想,也可以解释一下)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多