CakePHP Containable:深度关联中的相同模型

时间:2013-10-02 22:41:13

标签: cakephp cakephp-2.3 containable

我为此搜索了一些,但我甚至不知道该怎么称呼它。

在简化版中,我有这些模型:

  • Person(id,name) - hasMany:ArrivalDate
  • Country(id,name) - hasMany:Person
  • ArrivalDate(id,arrival_date,salesman_id) - belongsTo:PersonSalesman(className => Person

正如你所看到的,我正试图让到达日期的人和推销员在ONE TABLE中。

检索数据后,我使用可包含的行为来获取我想要的模型。

$person = $this->Person->find('first', array(
    'conditions' => array('Person.id' => $id),
    'contain' => array(
        'Country',
        'ArrivalDate'
    )
));

但问题是:如何“包含”Salesman

Salesman只是Person的别名,如果我包含Person模型,我只会获取父数据。如果我尝试包含别名(Salesman),我会收到错误。

1 个答案:

答案 0 :(得分:1)

'contain' => array(
        'Country',
        'ArrivalDate',
        'ArrivalDate.Salesman' => array( insert needed fields here ... )
    )

应该适合你的情况