包含深度关联无法正常工作

时间:2015-03-02 04:16:54

标签: php cakephp model associations

我有一个Produto(产品)模型属于Tito Titoo(标题)。 Pedido(订单)有许多Itens和Itens属于产品(产品)。 然而,在我使用包含带有Produto的Itens的模型Pedido后,使用find(all),下一个Produto,包含和递归函数的工作,这里是一个例子:

        $proModel = ClassRegistry::Init('Produto');
        pr($proModel->find('first', array('conditions' => array('pro_cod' => 650), 'contain' => 'Titulo')));
        $cart = $pedModel->find('first', array(
            'conditions' => array('ped_cod' => $cart['Pedido']['ped_cod']),
            'contain' => array(
                'Itens' => array(
                    'Produto' => array(
                        'Estadia' => array('Atributo', 'Numero'), 'Produtoplataformas'
                    ), 
                    'Troca', 'Locado', 'Tipo', 
                    'Locacao' => array('Plano', 'Itens')
                ),
                'Usuario'
            ),
            'recursive' => -1
        ));
        pr($proModel->find('first', array('conditions' => array('pro_cod' => 650), 'contain' => 'Titulo')));
        exit;

$ proModel-> find的第一个pr工作正常并打印出与之关联的'Titulo',然而,在$ pedModel-> find之后,同样的$ proModel-> find不打印'Titulo'协会。
我没有afterFind方法。

编辑:

我pr($ proModel-> belongsTo)并且在$ pedModel-> find之后它会发生变化。除了$ pedModel-> find的包含部分中使用的协会外,所有协会都会消失 如果我使用新的Produto而不是ClassRegistry :: Init('Produto'),它工作正常,但我想这不是一件好事,对吧?
这很糟糕。

1 个答案:

答案 0 :(得分:0)

这是CakePHP的一个错误: https://github.com/cakephp/cakephp/issues/5992

您不能在包含块中包含相同的别名。

其中一名工作人员说这是一个限制,对我来说,这是一个错误,因为它至少没有引发错误。