cakephp 4.x 查询从数据库中获取结果

cakephp 4.x query to get results from database

我最近遇到一个问题,我必须在 cakephp 中进行查找(全部)查询。

问题是我无法将模型函数调用到 cakephp 控制器并在函数中添加一个命令,该命令允许我在 cakephp 中创建一个 find(all) 函数并检索我正在寻找的数据库中的所有行。

我想进行一个简单的查询,以调用数据库 table 中的数据库,该数据库检索 table 中匹配查询的行。

public function display(){
    
    $query = $HouseParty->find('all', [
        'conditions' => ['HouseParty.popular >' => 0],
        'contain' => ['title', 'image', 'popular'],
        'limit' => 6
    ]);
    $results = $query->all();
    var_dump($results);
    
}

还有在 Cakephp 控制器中调用模型的代码是什么。所以控制器知道我们正在从控制器调用模型。所以我们可以与来自控制器的模型进行交互,因为我打算将来从同一个控制器多次调用不同的模型。请帮忙寻找几天来一直停留在这个问题上的回复,只是在这里提出一个对其他人也相关且足智多谋的问题。我想向其他社区成员提出一个方便的问题,除了我上面提到的内容之外,我只需要获取代码,即我应该编写什么代码才能在一个控制器中调用调用模型 - 调用多个模型从一个控制器。上面的代码是否正确,是什么导致了如下错误。那么从数据库调用模型的代码是什么。

我得到的错误如下:

Call to a member function find() on null

我认为您应该从基于您的模型的简单查询开始。

我假设您的模型是 HouseParties(一个名为 house_parties 的数据库 table)。

然后在你的HousePartiesController中,你可以查询:

$query = $this->HouseParties->find('all', [
    'conditions' => ['popular >' => 0],
    'limit' => 6
]); 

我认为您可能将 'contain' 误用为 select。 'contain' 用于相关的 table,而不是您正在查询的 table 中的字段。

如果您完整地阅读了 CMS 教程https://book.cakephp.org/4/en/tutorials-and-examples.html,应该会很清楚。