Laravel 应用的删除表单
Deletion Form For Laravel App
我不确定为什么在 Laravel 应用程序中单击删除按钮时收到 NotFoundHTTPException。
index.blade.php
<form action="/users/3" method="POST">
<input type="hidden" value="DELETE" name="_method">
<button class="btn btn-sm btn-icon btn-pure btn-default on-defaul" data-original-title="Delete" data-toggle="tooltip" type="submit">
</form>
UsersController.php
<?php
namespace App\Http\Controllers;
use App\User;
use Gate;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UsersController extends Controller
{
public function destroy()
{
return 'yes';
}
}
routes.php
Route::get('users', ['as' => 'users', 'uses' => 'UsersController@index']);
Route::get('users/{user}', ['as' => 'users.show', 'uses' => 'UsersController@show']);
Route::get('users/{user}/edit', ['as' => 'users.edit', 'uses' => 'UsersController@edit']);
Route::delete('users/{user}', ['as' => 'users.delete', 'uses' => 'UsersController@destroy']);
更改格式:
<form action="/users/3" method="DELETE">
<button class="btn btn-sm btn-icon btn-pure btn-default on-defaul" data-original-title="Delete" data-toggle="tooltip" type="submit">
</form>
您正在使用 POST
并且您还没有为 "DELETE" 动词定义路由。定义 post 而不是删除路由 (Route::post(...)) 或更改表单以使用如上所述的删除方法。
你应该改变:
<form action="/users/3" method="POST">
以下内容:
<form action="<?= route('users.delete', [$user]) ?>" method="POST">
index.blade.php
<form action="{{url('/users/3')}}" method="DELETE">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<button class="btn btn-sm btn-icon btn-pure btn-default on-defaul" data-original-title="Delete" data-toggle="tooltip" type="submit">
</form>
UsersController.php
<?php
namespace App\Http\Controllers;
use App\User;
use Gate;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UsersController extends Controller
{
public function destroy($id)
{
return 'yes';
}
}
我不确定为什么在 Laravel 应用程序中单击删除按钮时收到 NotFoundHTTPException。
index.blade.php
<form action="/users/3" method="POST">
<input type="hidden" value="DELETE" name="_method">
<button class="btn btn-sm btn-icon btn-pure btn-default on-defaul" data-original-title="Delete" data-toggle="tooltip" type="submit">
</form>
UsersController.php
<?php
namespace App\Http\Controllers;
use App\User;
use Gate;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UsersController extends Controller
{
public function destroy()
{
return 'yes';
}
}
routes.php
Route::get('users', ['as' => 'users', 'uses' => 'UsersController@index']);
Route::get('users/{user}', ['as' => 'users.show', 'uses' => 'UsersController@show']);
Route::get('users/{user}/edit', ['as' => 'users.edit', 'uses' => 'UsersController@edit']);
Route::delete('users/{user}', ['as' => 'users.delete', 'uses' => 'UsersController@destroy']);
更改格式:
<form action="/users/3" method="DELETE">
<button class="btn btn-sm btn-icon btn-pure btn-default on-defaul" data-original-title="Delete" data-toggle="tooltip" type="submit">
</form>
您正在使用 POST
并且您还没有为 "DELETE" 动词定义路由。定义 post 而不是删除路由 (Route::post(...)) 或更改表单以使用如上所述的删除方法。
你应该改变:
<form action="/users/3" method="POST">
以下内容:
<form action="<?= route('users.delete', [$user]) ?>" method="POST">
index.blade.php
<form action="{{url('/users/3')}}" method="DELETE">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<button class="btn btn-sm btn-icon btn-pure btn-default on-defaul" data-original-title="Delete" data-toggle="tooltip" type="submit">
</form>
UsersController.php
<?php
namespace App\Http\Controllers;
use App\User;
use Gate;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UsersController extends Controller
{
public function destroy($id)
{
return 'yes';
}
}