我有一个Category
带name
字段的表。我希望能够使用PartnerCategory
表覆盖该名称并加入它。
所以通常我会得到Category
这样的:
$options = array(
'contain' => array('PartnerCategory'),
'conditions' => array(
'Category.slug' => $slug,
'Category.status' => true,
)
);
$category = $this->Category->find('first', $options);
然后检查,如果ParentCategory.name
不为空并Category.name
用它替换。
用 php 覆盖名称很繁琐,所以我检查了虚拟字段。
Category.name
我可以使用这个覆盖:
$this->virtualFields = array(
'name' => 'SELECT name FROM app_partner_categories WHERE category_id = 1 AND partner_id = 60'
);
但如果表name
中的PartnerCategory
为空或未找到数学,则Category.name
将为空。
Category.name
仅在找到时如何覆盖PartnerCategory.name
?