Php 如何解决Laravel中路线之间的冲突

Php 如何解决Laravel中路线之间的冲突,php,laravel,routes,Php,Laravel,Routes,我想在我的申请表上有两个独立的功能。一个用于完成任务,另一个用于删除,但我收到一个错误,并且表单未加载:未定义路由[task.delete]。如何解决路线之间的冲突?只有当我走第二条路线出去时,表单才会加载。更新:删除函数现在的作用与完整函数相同 Route::patch('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']); Route::delete('/task/

我想在我的申请表上有两个独立的功能。一个用于完成任务,另一个用于删除,但我收到一个错误,并且表单未加载:未定义路由[task.delete]。如何解决路线之间的冲突?只有当我走第二条路线出去时,表单才会加载。更新:删除函数现在的作用与完整函数相同

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']);