cakephp 3中的黑白 get 或 find 有什么区别。为什么我们在cakephp 3中使用 get 或 find 。
3 回答
当您使用find()
方法时,您可以根据需要传递条件,以便在从数据库源过滤后检索数据。find('first')
或find('all')->first()
行为相同。
但
get($id)
仅对表的主键字段应用条件。这意味着仅由于主键的条件而为一条记录提供结果。
使用get()
方法时,如果从 db 源中找不到记录,则 CakePHP 会抛出 NOT Found Exception。所以这在给出响应为 NOT FOUND - 404 时非常有用,例如个人资料页面、博客详细信息页面..等
您可以调用find()
构造 Query 对象并返回它的表实例,并且您可以继续链接其他方法,例如where()
,并且 Query 对象是惰性的,除非您调用,,,->select()
否则不会被执行,更多解释在这里https://book。 cakephp.org/3.0/en/orm/query-builder.htmlall()
toArray()
first()
firstOrFail()
而get($primaryKey, $options = [])
如果找到将返回记录,如果没有记录则抛出未找到异常,它在内部构造查询和调用firstOrFail()
Get通常用于通过主键获取单个实体。
$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