Php 如何解决Laravel中路线之间的冲突
我想在我的申请表上有两个独立的功能。一个用于完成任务,另一个用于删除,但我收到一个错误,并且表单未加载:未定义路由[task.delete]。如何解决路线之间的冲突?只有当我走第二条路线出去时,表单才会加载。更新:删除函数现在的作用与完整函数相同Php 如何解决Laravel中路线之间的冲突,php,laravel,routes,Php,Laravel,Routes,我想在我的申请表上有两个独立的功能。一个用于完成任务,另一个用于删除,但我收到一个错误,并且表单未加载:未定义路由[task.delete]。如何解决路线之间的冲突?只有当我走第二条路线出去时,表单才会加载。更新:删除函数现在的作用与完整函数相同 Route::patch('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']); Route::delete('/task/
Route::patch('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']);
Route::delete('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
Controller:
public function delete(Task $task) { $task->delete(); session()->flash('status', 'Task Deleted!'); return redirect('/profile/' . auth()->user()->id); }
使用不同的动词。只要使用不同的方法,就可以有多条路由匹配相同的模式
Route::delete('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
Route::post('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']);
// or `Route::patch()`, both are valid.
尝试改变
Route::patch('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
到
在
laravel
world中,如果试图删除,则应使用delete
请求类型
来自数据库的内容
就这样吧
Route::delete('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
Route::patch('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']);
您可以在删除路由一节中了解更多信息,将其请求类型更改为
route::delete
而不是route::patch
谢谢,但现在它不会删除任务我的控制器是公共函数delete(任务$Task){//检查经过身份验证的用户是否可以完成任务//将任务标记为已完成并保存$task->delete();//将成功消息闪存到会话()->flash('status','task Deleted!');//重定向到任务索引返回重定向('/profile/'.auth()->user()->id);}@ozeol有什么问题现在你不提什么问题了is@ozeol如果您想首先检查auth
,您可以在构造中添加函数$this->middleware('auth')->only('delete');
仍然存在冲突。delete函数与完整函数的作用相同
Route::delete('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
Route::patch('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']);