默认情况下,当没有找到任何内容时,cakephp 会在
find()
上返回空数组。
但如何将其设置为显示为空白数组。
例如:
$customer = $this->Transaction->Customer->find(--conditions to return 0 result.--)
我希望它显示为空白数组,像这样。
array('Customer' => array('customer_id'=>null, 'name'=>null, 'lastname'=>null))
不只是空一个喜欢
array()
或 null
因为我总是看到错误显示
$customer['Customer']['name']
是未定义的索引。而且我不喜欢每次都用 isset()
或 is_null()
来检查。
在模型中使用 afterFind 回调方法。像这样的东西:
public function afterFind($results, $primary = false) {
if (empty($results)) {
$results = array('Customer' => array('customer_id'=>null, 'name'=>null, 'lastname'=>null))
}
return $results;
}
如果你真的想/需要这样做,你可以使用类似的东西:
$default = array('Customer' => array('customer_id' => null, 'name'=>null, 'lastname' => null));
$customer = $this->Transaction->Customer->find(...)
$customer = array_merge($default, $customer);
这样,如果结果为空,它将使用您的默认值。
但是,这不是一个好的做法,因为您最终可能会在页面中显示
"Welcome, NULL"
。您应该在您的视图中使用 if (!empty($customer)) ...
。
另外,在这个例子中,您是否使用
find->('first')
?