2016-08-18 89 views
0

$ this-> request-> data ['User'] ['upgraded']可能已设置,也可能未设置(它是表单中的复选框)。如果它没有设置,一切是伟大的工作,但我在我的debug.logCakePHP未定义通知

$this->User->update($user_id, $payment_id, $this->request->data['User']['upgraded']); 

下面的代码修复它得到一个“未定义指数”的通知,但有一种方法来处理它,而无需添加额外的IF语句:

$upgraded = false; 
if(isset($this->request->data['User']['upgraded'])) { 
    $upgraded = $this->request->data['User']['upgraded']; 
} 
$this->User->update($member_id, $payment_id, $upgraded); 

而且,在我update()函数,我检查,看看是否$升级为空或不是,但我仍然得到错误。

+0

不,不是真。除非你使用PHP7,在这种情况下,你可以使用'??'null-coalescing运算符,但这仍然是一个“检查”。 –

回答

1

可以使用哈希类根除错误的潜在尚未设定的变量 喜欢的东西:

$this->User->update(
    $user_id, 
    $payment_id, 
    Hash::get(
     $this->request->data, 
     'User.upgraded', 
     false 
); 

其中false是默认值未设置场

Documentation