此路由不支持 GET 方法。支持的方法:执行更新和删除时 PUT 和 DELETE
The GET method is not supported for this route. Supported methods: PUT & DELETE while performing update & delete
代码在web.php
Route::group(['middleware'=>['auth','admin']], function(){
Route::put('/role-register-update/{id}', 'Admin\DashboardController@registerupdate');
Route::delete('/role-delete/{id}', 'Admin\DashboardController@registerdelete');
});
DashboardController 中的代码
namespace App\Http\Controllers\Admin;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class DashboardController extends Controller
{
public function registerupdate(Request $request, $id){
$user = User::find($id);
$user->name = $request->input('name');
$user->phone = $request->input('phone');
$user->email = $request->input('email');
$user->userType = $request->input('userType');
$user->update();
return \redirect('/user_profile')->with('success', 'Your Data Is Updated');
}
public function registerdelete($id){
$user = User::findOrfail($id);
$user->delete();
return \redirect('/user_profile')->with('success', 'Your Data Is Deleted');
}
}
编辑表单代码
<form action="/role-register-update/{{ $user->id }}" method="POST">
{{ @csrf_field() }} {{ @method_field('PUT') }}
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name" id="name" placeholder="Full Name" value="{{ $user->name }}">
</div>
<div class="form-group">
<label for="phone">Phone</label>
<input type="number" class="form-control" name="phone" id="phone" placeholder="Phone Number" value="{{ $user->phone }}">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" name="email" id="email" aria-describedby="emailHelp" placeholder="Email Id" value="{{ $user->email }}">
</div>
<div class="form-group">
<label for="role">Role</label>
<select name="userType" class="form-control" id="userType">
<option value="">--- Select ---</option>
<option value="admin">Admin</option>
<option value="user">Internal User</option>
</select>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-6">
<button type="button" class="btn btn-outline-success">Submit</button>
</div>
<div class="col-md-6">
<a href='../user_profile' class="btn btn-outline-warning">Cancel</a>
</div>
</div>
</div>
</form>
删除表单数据的代码
<form method="POST" action="/role-delete/{{ $user->id }}">
{{ csrf_field() }} {{ method_field('DELETE') }}
<button type="button" class="btn btn-outline-danger">Danger</button>
</form>
未在 Laravel 5.8 中的本地主机上执行更新和删除操作。
它抛出更新错误是-
此路由不支持 GET 方法。支持的方法:PUT.
& 相同的删除错误
此路由不支持 GET 方法。支持的方法:DELETE.
我没有得到解决方案,请帮助
要具有正确的表单功能,您的按钮的类型应为 submit
。
即更新形式
<button type="submit" class="btn btn-outline-success">Submit</button>
或删除表格:
<button type="submit" class="btn btn-outline-danger">Danger</button>
旁注,您的取消 link 具有 ../user_profile
href 属性。
你应该考虑不使用那种可遍历的位置字符串,你以后会避免很多皮塔饼。 Insted,最好的方法是使用 route name provided by framework 或仅使用相对于 URL root 的路径,但带有前导斜杠
例如:
<a href='/user_profile' class="btn btn-outline-warning">Cancel</a>
但同样,从编程角度和维护角度来看,最好和正确的方法是使用命名路由
<a href='{{ route('route.name.set.in.routes.web.file') }}' class="btn btn-outline-warning">Cancel</a>
代码在web.php
Route::group(['middleware'=>['auth','admin']], function(){
Route::put('/role-register-update/{id}', 'Admin\DashboardController@registerupdate');
Route::delete('/role-delete/{id}', 'Admin\DashboardController@registerdelete');
});
DashboardController 中的代码
namespace App\Http\Controllers\Admin;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class DashboardController extends Controller
{
public function registerupdate(Request $request, $id){
$user = User::find($id);
$user->name = $request->input('name');
$user->phone = $request->input('phone');
$user->email = $request->input('email');
$user->userType = $request->input('userType');
$user->update();
return \redirect('/user_profile')->with('success', 'Your Data Is Updated');
}
public function registerdelete($id){
$user = User::findOrfail($id);
$user->delete();
return \redirect('/user_profile')->with('success', 'Your Data Is Deleted');
}
}
编辑表单代码
<form action="/role-register-update/{{ $user->id }}" method="POST">
{{ @csrf_field() }} {{ @method_field('PUT') }}
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name" id="name" placeholder="Full Name" value="{{ $user->name }}">
</div>
<div class="form-group">
<label for="phone">Phone</label>
<input type="number" class="form-control" name="phone" id="phone" placeholder="Phone Number" value="{{ $user->phone }}">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" name="email" id="email" aria-describedby="emailHelp" placeholder="Email Id" value="{{ $user->email }}">
</div>
<div class="form-group">
<label for="role">Role</label>
<select name="userType" class="form-control" id="userType">
<option value="">--- Select ---</option>
<option value="admin">Admin</option>
<option value="user">Internal User</option>
</select>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-6">
<button type="button" class="btn btn-outline-success">Submit</button>
</div>
<div class="col-md-6">
<a href='../user_profile' class="btn btn-outline-warning">Cancel</a>
</div>
</div>
</div>
</form>
删除表单数据的代码
<form method="POST" action="/role-delete/{{ $user->id }}">
{{ csrf_field() }} {{ method_field('DELETE') }}
<button type="button" class="btn btn-outline-danger">Danger</button>
</form>
未在 Laravel 5.8 中的本地主机上执行更新和删除操作。 它抛出更新错误是- 此路由不支持 GET 方法。支持的方法:PUT.
& 相同的删除错误 此路由不支持 GET 方法。支持的方法:DELETE.
我没有得到解决方案,请帮助
要具有正确的表单功能,您的按钮的类型应为 submit
。
即更新形式
<button type="submit" class="btn btn-outline-success">Submit</button>
或删除表格:
<button type="submit" class="btn btn-outline-danger">Danger</button>
旁注,您的取消 link 具有 ../user_profile
href 属性。
你应该考虑不使用那种可遍历的位置字符串,你以后会避免很多皮塔饼。 Insted,最好的方法是使用 route name provided by framework 或仅使用相对于 URL root 的路径,但带有前导斜杠
例如:
<a href='/user_profile' class="btn btn-outline-warning">Cancel</a>
但同样,从编程角度和维护角度来看,最好和正确的方法是使用命名路由
<a href='{{ route('route.name.set.in.routes.web.file') }}' class="btn btn-outline-warning">Cancel</a>