我正在开发我的第一个CakePHP项目。在我对“项目”的烘焙视图中,有一个“相关”div显示“相关项目”。
检查'Project'数组是否为空:
<div class="related">
<h3><?php echo __('Related Projects'); ?></h3>
<?php if (!empty($item['Project'])): ?>
<dl>
...
看到'项目'db表现在是空的,我认为这将是空的。但是,我在$item['Project']
:
["Project"]=> array(7) {
["id"]=> NULL
["item_id"]=> NULL
["title"]=> NULL
...
}
我可以通过检查NULL id来解决这个问题,但我想避免解决方法并以Cake方式做事。
控制器:
public function view($id = null) {
if (!$this->Item->exists($id)) {
throw new NotFoundException(__('Invalid item'));
}
$options = array('conditions' => array('Item.' . $this->Item->primaryKey => $id));
$this->set('item', $this->Item->find('first', $options));
}
型号:
public $hasOne = array(
'Project' => array(
'className' => 'Project',
'foreignKey' => 'item_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
答案 0 :(得分:1)
执行$ hasOne并因此直接左连接时这是正常的。 它将使用空值填充那些相关字段 - 就像mysql一样。
然后检查该记录的ID:
if (!empty($item['Project']['id']) {}