繁体   English   中英

CakePHP3:如何在表模型中运行自定义 SQL 查询

[英]CakePHP3: How to run custom SQL query in table model

在 CakePHP 3 中,是否可以从表模型中运行自定义 SQL 查询? 如果是这样,如何?

我在表模型中尝试了以下操作:

public function getUsersByLocation($location)
{
    $sql = "SELECT `user_id`, `username` FROM `user` WHERE `location` = ?";
    $rows = $this->query($sql, [$location]);
}

(出于示例目的,查询故意简单。)

但是,当我遍历$rows ,这会导致无限循环。

我很惊讶 CakePHP 3 没有在他们的文档中的任何地方清楚地记录从表模型运行自定义查询。 他们目前迫使用户使用 CakePHP 自己的众多专有方法来将各种查询粘合在一起。

这是答案:

public function getUsersByLocation($location)
{
    $sql = "SELECT `user_id`, `username` FROM `user` WHERE `location` = ?";
    return $this->connection()->execute($sql, [$location])->fetchAll('assoc');
}

所以简单地使用php

$query = $this->find()
    ->select(['user_id', 'username'])
    ->where('location' => $location);

在您的 Table 类中。

这是所有的记载很清楚的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM