Cakephp 2.x - 容易拒绝工作

时间:2018-02-05 13:22:39

标签: php cakephp-2.x containable

我有以下模型结构:

型号:

  • 打开
  • 应用
  • 申请人

前三个是在应用程序的初始设置时创建的,之后通过bake脚本添加了组。

模型关联:

  • 申请人有多个申请
  • 申请已经有很多申请人
  • 申请所属于开幕
  • 打开hasMany Application
  • 开设belongsTo Group
  • Group hasMany Opening(在烘焙脚本运行后添加)

我正在尝试在应用程序模型中检索数据,但我遇到了一些问题。我似乎无法进入Group表。我不断被告知我正在寻找的专栏不存在。我的问题:

$options = array(
    'fields' => array(
        'Application.applicant_id',
        'Application.opening_id',
        'Application.value_1',
        'Application.date',
        'Applicant.first_names',
        'Applicant.surname',
        'Applicant.gender',
        'Applicant.id_number',
        'Opening.title',
        'Group.group_xs',
        'Group.group_name'
    ),
    'recursive' => -1,
    'contain' => array(
        'Applicant', 
        'Opening.Group',
    ),
    'conditions' => array(
        'Applicant.id' => $applicant_id,
        'Opening.id' => $opening_id
    )
);
$result = $this->find('all', $options);

错误讯息:

Column not found: 1054 Unknown column 'Group.group_xs' in 'field list'

我尝试了很多不同的变体,它甚至都不好笑。我已经尝试了有和没有'递归','recursive'=> -1,0和1.我还尝试了以下“包含”键的变体,以及其他许多变种。

    'contain' => array(
        'Applicant', 
        'Opening' =>array('Group')
    ),

    'contain' => array(
        'Applicant', 
        'Opening',
        'Group'
    ),

    'contain' => array(
        'Group'
    ),

我在Application模型的顶部加载Containable行为,如下所示:

public $actsAs = array('Containable' => array('recursive' => true,'autofields' => true));

任何人都可以帮忙。这是怎么回事?

1 个答案:

答案 0 :(得分:0)

我认为可容纳对象仅适用于“具有”关系,而不适用于“ belongsTo”关系。

尝试使用联接表https://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables