2017-03-06 42 views
0

我試圖從我的編輯頁面到我的更新頁面,但是文檔中沒有解釋如何路由到它。這是我的我的編輯頁面形式:從編輯到更新他們之間的鏈接如何?

/* 
Or method="PUT" 
*/ 
<form method="PATCH" action="../{{$id}}"> 
{{ method_field('PUT') }} 
<input type="submit" value="edit"/> 
</form> 

我的路線被宣佈爲一個資源控制器:

Routes::resource('/','TestController',['parameters' => [ 
    '' => 'test' 
]]); 

在我的控制器我只是有:

public function update(Request $request, Test $test){ 
    return 'test'; 
} 

它只是給嘗試以多種方式訪問​​更新操作時遇到不同的錯誤。

我想:{{route($id)}}這給了我:沒有定義

的資源文件給我的網址是假設是這樣的

路線1:

PUT/PATCH /photos/{photo} 

我不明白laravel中的資源控制器的路由,而這些資源控制器並沒有太多的發現。我甚至試圖從/{{$id}}/edit這樣簡單地返回1:../{{$id}},但這只是讓我參加show動作(因爲show和update顯然具有相同的url),我也認爲這不是從控制器訪問動作的最佳方式。

+0

您尚未提供表單操作。 –

+0

@RossWilson是的,我保持空虛,導致下面的例子是我作爲一個行動嘗試 – Loko

回答

0

試着改變你的形式開始標記是:

<form method="POST" action="{{ url($id) }}"> 
    {{ csrf_field() }} 
    {{ method_field('PUT') }} 

希望這有助於!

+0

它的工作原理,但爲什麼。我不明白爲什麼我的其他嘗試獲得$ id沒有工作。 – Loko

+0

@Loko,因爲你使用'route()'。 https://laravel.com/docs/5.4/helpers#method-route –

0

對於資源路由,您可以在控制器中擁有以下方法。 指數

public function index() 
    { 
     return view(); 
    } 

創建

public function create() 
    { 
     // 
    } 

商店

public function store(Request $request) 
    { 
     // 
    } 

顯示

public function show($id) 
    { 
     // 
    } 

編輯

public function edit($id) 
    { 
     // 
    } 

更新

public function update(Request $request, $id) 
    { 
     // 
    } 

銷燬

public function destroy($id) 
    { 
     // 
    } 

使用PHP創建工匠控制器。那麼這些資源方法將自動創建。

+0

這不是我在談論的 – Loko

+0

如果這是一個編輯從路由模型綁定。 https://laravel.com/docs/5.4/routing#route-model-binding – Dhananjaya

+0

在存儲方法中寫入保存代碼。資源路由編輯網址就像http://homedomain.com/route/id/edit – Dhananjaya

相關問題