我在控制器中调用它:
public function index() {
$this->Product->recursive = 2;
$this->Product->unbindModel(array('hasMany' => array('Productproperty')), true);
$this->Product->Ranking->unbindModel(array('belongsTo' => array('Product', 'Contacts')), true);
$this->Product->Ranking->bindModel(array('belongsTo' => array('Customer' => array('foreignKey' => false))), true);
$this->set('products', $this->Paginator->paginate());
}
我得到了我想要的所有日期,调试中显示的语句是正确的。 数据输出对我来说是正确和完美的。
但是我在屏幕上收到此错误消息:
为foreach()提供的参数无效 [CORE \ Cake \ Model \ Datasource \ DboSource.php,第1695行]
我想知道为什么涉及dboSource? 有什么想法是错的吗?
答案 0 :(得分:0)
foreach ($conditions as $key => $condition) { ... }
在我看来,你的paginate查询中只是缺少'条件'。你有没有尝试过任何东西?也许在取消绑定默认结构后,某种程度上失去了?我认为可能是CakePHP错误。
答案 1 :(得分:0)
重新思考结构和许多小时的试错...... :-) 这确实是我自己造成的语法错误。 这是我的解决方案:
public function index() {
$this->set('title_for_layout','Statistiken');
$this->Product->recursive = 3;
$this->Product->unbindModel(array('hasMany' => array('Productproperty')), true);
$this->Product->Ranking->unbindModel(array('belongsTo' => array('Product', 'Contacts')), true);
$this->Product->Ranking->Contact->unbindModel(array('hasMany' => array('Ranking')), true);
$this->set('products', $this->Paginator->paginate());
}