2016-10-17 75 views
0

我遇到了更新數據庫中的行的問題。只要我提交我的更新表單,它會返回並且出現錯誤Call to a member function update() on null有人能告訴我我在這裏做錯了什麼嗎?Laravel 5.3更新行返回調用成員函數update()null

我的代碼:

public function update(Request $request){ 
     $user = Auth::user(); 
     $uid = $user->farmTag; 

     $cowValues = array(
      'KilledOn' => $request['KilledOn'], 
      'EID' => $request['EID'], 
      'ManagementI/D' => $request['ManagementID'], 
      'name' => $request['name'], 
      'breed' => $request['breed'], 
      'sex' => $request['sex'], 
      'DOB' => $request['DOB'], 
      'BoughtOn' => $request['BoughtOn'], 
      'description' => $request['description'], 
      'farmTag' => $uid, 
    ); 

     Cow::find($request['EID'])->update($cowValues); 

     return back(); 

    } 

完整的錯誤:

in CowsController.php line 280 
at CowsController->update(object(Request)) 
at call_user_func_array(array(object(CowsController), 'update'), array(object(Request))) in compiled.php line 9355 
at Controller->callAction('update', array(object(Request))) in compiled.php line 9382 
at ControllerDispatcher->dispatch(object(Route), object(CowsController), 'update') in compiled.php line 8440 
at Route->runController() in compiled.php line 8421 
at Route->run(object(Request)) in compiled.php line 8117 
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 9948 
at SubstituteBindings->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 43 
at Authenticate->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3121 
at VerifyCsrfToken->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13430 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 11874 
at StartSession->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13176 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 13113 
at EncryptCookies->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 9825 
at Pipeline->then(object(Closure)) in compiled.php line 8118 
at Router->runRouteWithinStack(object(Route), object(Request)) in compiled.php line 8109 
at Router->dispatchToRoute(object(Request)) in compiled.php line 8100 
at Router->dispatch(object(Request)) in compiled.php line 2446 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3183 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in compiled.php line 9840 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 9825 
at Pipeline->then(object(Closure)) in compiled.php line 2390 
at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 2374 
at Kernel->handle(object(Request)) in index.php line 53 

如果有一些缺失的信息,請讓我知道。

謝謝!

+0

它看起來像'牛::發現($請求[ 'EID'])''返回NULL',所以你的代碼實際上是'空值>更新($ cowValues)' (這正是錯誤所說的)。沒有'find'的定義就很難提供幫助。 – Dekel

+0

嘗試把'dd(Cow :: find($ request ['EID']))'看看它吐出了什麼,如果有任何嘗試用where子句搜索'Cow :: where('EID',$ request [ 'EID'])' – Carlos

+0

感謝您的回覆@Carlos,您的方法奏效!有趣的是,雖然我在別處使用了相同的方法,但它確實有效。無論如何,謝謝! –

回答

0

試試這個

$cow = Cow::where('EID', $request->input('EID'))->first(); 

if($cow) 
{ 
    $cow->update($cowValues); 
} 
+0

我沒有看到這個答案的任何問題,爲什麼downvote – ggderas

+0

我認爲他們不喜歡:P – Vikash

相關問題