您应该按照CakePHP的预期使用您的模型。见Retrieving Your Data。
通过使用'自定义'查询,CakePHP不会阻止SQL注入,并且您需要'手动',导致很多问题;
而且,因为要显示所有问题,但它们进行过滤的国家他们属于,则应该从Issue模型检索数据,而不是State
指定模型的关系
应用/型号/ State.php
class State extends AppModel {
public $hasMany = array(
'Issue'
);
}
应用/型号/ Issue.php
class Issue extends AppModel {
public $belongsTo = array(
'State'
);
}
进行分页数据,请参阅Pagination
而且你的控制器内:
class MyController extends AppController {
public $paginate = array(
'Issue' => array(
// Default limit, can be overridden via 'limit' named parameter
// e.g. /MyController/index/limit:20
'limit' => 10,
// Probably required to get 'State' in the results
'recursive' => 1,
);
);
public function index($stateName)
{
$conditions = array(
'State.stateName' => $stateName
);
// I'll leave this name for now, better call it 'issues'?
$states = $this->paginate('Issue', conditions)
$this->set('states', states);
$this->set('_serialize', array('states'));
}
}
为了呈现分页数据,你也应该使用PaginatorHelper
手动连接表/模型
如果默认的模型关系不符合您的要求s,您可以手动将表连接在一起;请参阅本章文档中:
注: 我没有测试过这些例子,它会可能工作,否则它是一个很好的出发点,让你去