php - 显示自定义 SQL 结果

标签 php mysql cakephp

我想做什么

我想列出在特定条件下从数据库中提取的数据。

我有什么,它有什么作用

我有一个调用数据的函数。当我 print_r 数据时,它抛出正确的东西,所以查询直接执行。但是,显示器不工作。它显示了数据库中的所有数据。

这是我的功能:

public function myfunction() {
    $adminExtensions = $this->AdminExtension->find('all',
        array(
            'conditions' => array('location_id'=>'3')
        )
    );
    //print_r($adminExtensions);
    $this->set('adminExtensions', $this->paginate());
}

问题是什么

如前所述,问题在于它不只列出具有 location_id == 3 的记录。它列出了所有内容。

我已将范围缩小到函数的最后一行,但我似乎无法在其中获取正确的代码。

我的显示文件 (myfunction.ctp) 是一个基本的烘焙 cakePHP 索引文件。

我做错了什么?

最佳答案

您当前拥有的代码调用了两个不同的find 操作。 $this->AdminExtension->find() 将返回一个包含所有 AdminExtensionslocation_id 为 3 的数组。第二个 $this->paginate() 调用只返回 View 中适合分页的所有可能结果。

如果您想过滤分页结果,您必须在 Controller 中配置 $paginate 变量,或者在调用 $this->paginate 之前直接执行此操作。

class PostsController extends AppController {
  public $paginate = array(
    'conditions' => array('location_id'=>'3')
  );
}

这将调整 Controller 中所有 $this->paginate 调用的分页。

只需一次分页调用即可:

public function your_view() {
   $this->set('adminExtensions', $this->paginate('AdminExtension', array('location_id' => '3')));
);

关于php - 显示自定义 SQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747138/

相关文章:

php - Cakephp 2.0.4 ACL错误

php - 为什么libcurl会计算 "4 TIMES"添加easy handles的个数?

php - 将数据显示到 html 表中

php - 根据容器宽度截断 PHP 字符串

具有多个可选参数的 MySQL 存储过程

mysql - 如何使用cakephp在where条件下使用sum函数

php - 更改数据库模式 cakephp 3 无需迁移

php - 如何修复 - Encrypter.php 第 43 行中的 RuntimeException

php - 将 _DB_Prefix_ 和 $id_manufacturer 放在哪里?

php - 我可以安全地删除cpanel中的cagefs/var/cpanel/php/sessions/ea-phpxx(xx是版本)中的 session 吗?