我以这种方式清理了我的一个控制器中的一些功能:
旧功能:
return $this->find()
->where(['id' => $id])
->first();
新的:
return $this->get($id);
哪个更快,或者哪个更受欢迎?
我以这种方式清理了我的一个控制器中的一些功能:
旧功能:
return $this->find()
->where(['id' => $id])
->first();
新的:
return $this->get($id);
哪个更快,或者哪个更受欢迎?
在性能方面应该几乎没有区别,只需查看源代码和/或简单地测试它。在1000
迭代中,我可以看到0.0001
几秒钟的差异,这无需担心。
一旦主键和别名被“缓存”(默认情况下应该在表类被实例化时发生,在烘焙时分别被初始化) ,构建查询所需的额外处理应该是绝对最小的。
那时,几乎唯一的区别应该get()
是更短并且在找不到记录时抛出异常。
另见http://book.cakephp.org/3.0/en/orm/table-objects.html#loading-entities