在cakephp 3中获取或查找有什么区别

时间:2016-10-05 11:34:06

标签: cakephp-3.0 cakephp-3.2 cakephp-3.1

b / w在 cakephp 3 中获得或找到的区别是什么。为什么我们在 cakephp 3 中使用get或find。

3 个答案:

答案 0 :(得分:1)

当您使用find()方法时,您可以根据需要传递条件,以便在从db源过滤后检索数据。 find('first')find('all')->first()的行为相同。

<强> BUT

get($id)仅适用于表的主键字段。这意味着仅由于主键上的条件而给出一条记录的结果。

当使用get()方法时,如果没有从db source找到记录,那么CakePHP会抛出NOT Found Exception。因此,当将响应视为未找到时,这非常有用 - 404例如,“个人资料”页面,“博客详细信息页面”等。

答案 1 :(得分:0)

获取通常用于通过主键获取单个实体。

$this->Models->get($id);//here $id is your tables primary key

查找中,我们对数据进行了优化。

$this->Models->find('all');//get all the data 

$this->Models->find('all')->first(); //get the first row 

它可用于查找所有数据以及第一个数据。 在这里我们也可以提出条件

点击此链接获取更多信息

http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html

答案 2 :(得分:0)

您可以在构造Query对象的表实例上调用find()并返回它,您可以继续链接其他方法,如where()->select()和Query对象是惰性的,并且不会执行,除非您致电all()toArray()first()firstOrFail()等,此处有更多解释https://book.cakephp.org/3.0/en/orm/query-builder.html

如果找不到get($primaryKey, $options = [])将返回记录,或者如果没有记录就会抛出未找到的异常,而它在内部构造查询并调用firstOrFail()