2016-11-17 127 views
-4

我需要更新一些記錄,這是形式的行動,我的刀片如何解決未定義的變量在Laravel 5.2

<form class="form-vertical" role="form" method="post" action="/projects/{{ $project->id }}/collaborators/{{ $collaborator->user()->first()->id }}"> 

我控制器

public function update(Request $request, $projectId, $collaboratorId) 
{ 
    $this->validate($request, [ 
      'status' => 'required', 
     ]); 

     DB::table('permissions') 
      ->where('project_id', $projectId) 
      ->where('collaborator_id', $collaboratorId) 
      ->update(['status' => $request->input('status')]); 

     return redirect()->back()->with('info','Your Permission has been updated successfully'); 



} 

路線

Route::put('projects/{projects}/collaborators/{id}',['uses'=>'[email protected]',]); 

當點擊更新按鈕生成如下錯誤

Undefined variable: project (View: C:\Users\Nalaka\Desktop\c\resources\views\collaborators\permissionedit.blade.php) 

如何解決這個問題?

+0

我沒有看到你試圖在這裏使用項目變量。 –

+0

檢查我的表單動作 – Fernando

回答

0

隨着您的路線Route::put('projects/{projects}/collaborators/{id}',['uses'=>'[email protected]',]);你需要發送一個PUT請求。您的表單發送POST請求。

更改您的路線Route::post或使用一些JavaScript發送PUT請求與Ajax。

試試看看之後是否還有其他錯誤。 另外,如果有「未定義的變量」,則顯示圍繞此變量的代碼。

+0

在此生成的同樣錯誤 – Fernando

+0

您的方法'更新'使得重定向。它在哪裏?似乎變量「項目」在那裏丟失。您可以在視圖中添加一個檢查@if(isset($ project)'Do stuff'@ endif'或修復方法以再次發送此變量。 –

+0

我已經在我的視圖中擁有此變量@if(isset($ permissions )) @foreach($ permissions as $ permission) 以及如何添加@if(isset($ project) – Fernando