我有一个名为 Event 的数据库表,在 CakePHP 中它的关系编码如下:
var $belongsTo = array('Sport');
var $hasOne = array('Result', 'Point', 'Writeup', 'Timetable', 'Photo');
现在正在查询,只想提取 Sport、Point 和 Timetable
这会导致我检索 Sports、Events、Points 和 Timetable。
不提取所有内容的原因是结果有 17000 多行。
有没有办法只选择那些使用的表:
$this->Event->find('all');
我看过 API,但看不出它是如何完成的。
最佳答案
您应该在您的 app_model 中将 recursive 设置为 -1 并且只提取您需要的东西。永远不要使用 2 和 http://book.cakephp.org/view/1323/Containable 的递归太棒了。
只是 $this->Event->find('all', array('contain' => array()));
如果你在 app_model 中使用递归 as -1 的技巧,这不是必需的,如果只是 find('all') 就像你拥有的那样
关于sql - 限制型号选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064999/