Cakephp 2.5。使用bind / unbind时出错

时间:2014-06-13 15:39:55

标签: cakephp

我在控制器中调用它:

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? 有什么想法是错的吗?

2 个答案:

答案 0 :(得分:0)

来自DBOSource line 1695

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());
    }