2016-08-18 93 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