我有以下数据模型
`Table: Workflow
Field: workflow_id
Field: workflow_name
Field: workflow_step_id`
`Table: Workflow_Step
Field: workflow_step_id
Field: workflow_step_name
Field: workflow_id`
`Table: Workflow_Step_Detail
Field: workflow_step_detail_id
Field: workflow_step_detail_name
Field: country_id
Field: state_id
Field: workflow_step_id`
在控制器类
中`<?php
$this->set('workflow', $this->Workflow->findByWorkflowId(1)); // this works fine
?>`
在视图文件中
`<?php
$steps = $workflow['Workflow']['WorkflowStep']; //this gets all the steps
$detail = $steps[0]['WorkflowStepDetail']; // this also works fine
echo $detail['state_id']; //this also works fine
echo $detail['state_name']; // this is what i want
?>`
从上面可以看出,这是一个高度标准化的数据模型。我的CakePHP数据结构与hasMany
和belongsTo
一起工作正常 - 当我执行findByWorkflowId($id)
时,它会加载所有递归数据结构。但是,当我想显示WorkflowStepDetails时 - 我不想只显示country_id
或state_id
- 我想显示country
和state
查找中的相应名称表。我无法弄清楚如何在CakePHP findBy
结构
答案 0 :(得分:0)
您需要暂时“重新绑定”模型。这有点像黑客,但直到版本3.x:
http://mark-story.com/posts/view/using-bindmodel-to-get-to-deep-relations