2 回答

TA贡献1827条经验 获得超9个赞
要显示关联的表数据,您需要做三件事:
表中的关联
$this->belongsTo('Types', [
'foreignKey' => 'type_id',
'joinType' => 'INNER'
]);
在控制器(JobsController)中,使用“ contain”指定关联表,
public function index() {
$jobs = $this->Jobs->find('all')->contain(['Types']);
//set jobs variable to make it available in .ctp file
}
在Jobs / index.ctp文件中
<?php echo $job['types']['name'] ;?>

TA贡献1891条经验 获得超3个赞
首先,您的foreach
循环应为foreach ($jobs as $job)
。请注意$job
跟踪每个特定作业的变量的单数形式。
紧接着,由于“作业belongTo
类型”,每个作业只有一个类型,而不是多个。结果,您正在寻找的值是 $job['type']['name']
($job->type->name
可能也可以使用)。所有这些都假定您在加载记录时已正确使用了遏制;因此,为什么我也要求显示该代码。
如果乔布斯有许多类型,那么您将拥有$job['types']
(或$job->types
),它是可以迭代的Type实体的数组。
- 2 回答
- 0 关注
- 145 浏览
添加回答
举报