2016-11-08 52 views
0

這是我的代碼Laravel刪除按鈕拋出錯誤「頁面無法找到

視圖

<form action="/categories/ {{ $category->id }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 

    <button>Delete Task</button> 
</form> 

控制器方法

public function destroyCategory($id) 
{ 

    Categories::findOrFail($id)->delete(); 

    return redirect('/categories'); 
} 

路線

Route::post('categories','[email protected]'); 

表在局部看來,可以問題

+0

您的表單的action屬性的空間。 – jcorry

回答

2

您發送您的形式DELETE方法,但你抓住它作爲post而不是deleteroute文件&裏面還有你在自己route文件分配URL參數。

<form action="/categories/{{ $category->id }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 

    <button type="submit">Delete Task</button> 
</form> 

route.php

Route::delete('categories/{id}','[email protected]'); 
0

/categories後有空間,你不用提交按鈕:

<form action="/categories/{{ $category->id }}" method="POST"> 
    {{ csrf_field() }} 
    <input name="_method" type="hidden" value="DELETE"> 
    <input class="btn btn-danger" type="submit" value="Delete Task"> 
</form> 

或用Laravel集體形式:

{!! Form::open(['method' => 'Delete', 'route' => ['task.delete', $category->id]) !!} 
{!! Form::submit('Delete Task') !!} 
{!! Form::close() !!} 

此外,您正在使用post路線而不是delete。而且,正如@Rimon汗說,你不抓一個類別的ID:

Route::delete('categories/{id}', ['as' => 'task.delete', 'uses' => '[email protected]']); 
0

你可以這樣說:

你的路線應該是這樣的:

Route::post('categories/{id}','[email protected]')->name('delete_categories'); 

控制器應該是這樣的:

public function destroyCategory($id) 
{ 
    Categories::findOrFail($id)->delete(); 
    return redirect()->to('/'); 
} 

和HTML會是這樣的:

<form action="{{ route('delete_categories', ['id' => $category->id]) }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 

    <button type="submit">Delete Task</button> 
</form> 

希望這有助於