b / w在 cakephp 3 中获得或找到的区别是什么。为什么我们在 cakephp 3 中使用get或find。
答案 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()