【问题标题】:Showing custom SQL results显示自定义 SQL 结果
【发布时间】:2013-02-07 17:34:19
【问题描述】:

我想做什么

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

我有什么,它有什么作用

我有一个调用数据的函数。当我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) 是一个基本的烤蛋糕 PHP 索引文件。

我做错了什么?

【问题讨论】:

标签: php mysql cakephp


【解决方案1】:

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

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

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

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

仅对一个分页调用执行此操作:

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

【讨论】:

  • 天哪,这很容易。太感谢了。解释也是有道理的。
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
相关资源
最近更新 更多