问题描述
我最近遇到一个问题,我必须在 cakePHP 中进行 find(all) 查询。
问题是我无法将模型函数调用到 cakePHP 控制器并在函数中添加一个命令,该命令允许我在 cakePHP 中创建一个 find(all) 函数并检索我正在寻找的数据库中的所有行。>
我想做一个简单的查询来调用数据库中的数据库表,该表检索匹配查询的表中的行。
public function display(){
$query = $HouseParty->find('all',[
'conditions' => ['HouseParty.popular >' => 0],'contain' => ['title','image','popular'],'limit' => 6
]);
$results = $query->all();
var_dump($results);
}
还有什么是调用 CakePHP 控制器中的模型的代码。所以控制器知道我们正在从控制器调用模型。所以我们可以与控制器中的模型进行交互,因为我打算将来从同一个控制器多次调用不同的模型。请帮助寻找在这个问题上停留了几天的回复,只是在这里提出一个对其他人也相关且足智多谋的问题。我想向其他社区成员提出一个问题,我只需要获取除我上面提到的代码之外的代码,即我应该编写哪些代码才能在一个控制器中调用模型 - 调用多个模型从一个控制器。上面的代码是否正确,是什么导致它给出如下错误。那么从数据库调用模型的代码是什么。
我得到的错误如下:
解决方法
我认为您应该从基于模型的简单查询开始。
我假设您的模型是 HouseParties(一个名为 house_parties 的数据库表)。
然后在您的 HousePartiesController 中,您可以查询:
$query = $this->HouseParties->find('all',[
'conditions' => ['popular >' => 0],'limit' => 6
]);
我认为您可能误用了“包含”作为选择。 “包含”用于相关表,而不是您正在查询的表中的字段。
如果您完整地阅读了 CMS 教程 https://book.cakephp.org/4/en/tutorials-and-examples.html,应该很清楚。