2016-06-13 132 views
1

我在Laravel中有一個表單,當它提交時,函數donorUpdate即將被調用,它會將數據保存到數據庫。這裏是確切的函數的代碼。Laravel:無法設置對象值

我的目標是,窗體包含字段名稱DonorPrefix,當它爲空時,默認值應爲Mx.。我嘗試了下面的代碼,但它不起作用。

public function donorUpdate(Request $request, Donor $donor){ 
    if($request->has('DonorPrefix') == false || $request->DonorPrefix == '' || $request->DonorPrefix == null){ 
    $request->DonorPrefix = 'Mx.'; 
    } 
    $donor->update($request->all()); 
    return redirect('/donor/'.$donor->DonorID); 
} 

這就是怪異部分開始:我調試的嘗試是,我評論了return redirect('/donor/'.$donor->DonorID);線,並與return $request->all()更換,爲DonorPrefix""(空字符串)。

但是,當我嘗試return $request->DonorPrefix,前綴Mx.返回。

爲什麼不是DonorPrefixMx.$request->all(),但Mx.return $request->DonorPrefix

編輯:我確定代碼的其他部分的作品像魅力。事情是平穩的,直到我試圖添加這個'默認值'功能。

回答

1

您不能設置請求參數如$request->DonorPrefix = '...'

要設置參數,你需要使用offsetSet這樣的要求:

$request->offsetSet('DonorPrefix', 'Mx.'); 

此外,has()方法已確保它是一個非空字符串這樣你就可以刪除你的一些檢查並簡化您的代碼,如下所示:

if(!$request->has('DonorPrefix')){ 
    $request->offsetSet('DonorPrefix', 'Mx.'); 
} 
+0

謝謝!奇蹟般有效! – srakrn