我想做什么
我想列出在特定条件下从数据库中提取的数据。
我有什么,它有什么作用
我有一个调用数据的函数。当我 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()
将返回一个包含所有 AdminExtensions
且 location_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/