【问题标题】:How to resolve conflict between routes in Laravel如何解决 Laravel 中路由之间的冲突
【发布时间】:2020-01-30 20:40:14
【问题描述】:

我正在尝试在我的应用程序上设置两个独立的功能。一个完成任务,另一个删除,但我收到错误消息并且表单未加载:未定义路由 [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而不是Route::patch

标签: php laravel routes


【解决方案1】:

laravel 世界中,如果您尝试删除,您应该使用delete 请求类型 来自database的东西

原来如此

Route::delete('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);

Route::patch('/task/{task}',['uses' => 'TaskController@complete', 'as'=> 'task.complete']);

您可以在Basic Routing 部分了解更多信息

【讨论】:

  • 谢谢,现在不会删除任务了
  • 我的控制器是 public function delete(Task $task) { // 检查认证用户是否可以完成任务 // 将任务标记为完成并保存 $task->delete(); // 向会话发送成功消息 session()->flash('status', 'Task Deleted!'); // 重定向到任务索引 return redirect('/profile/' . auth()->user()->id); }
  • @ozeol 是什么问题现在你不提问题是什么
  • @ozeol 如果你想先检查auth,你可以添加你的construct函数$this->middleware('auth')->only('delete');
  • 还是有冲突。删除函数与完整函数作用相同
【解决方案2】:

使用不同的动词。只要使用不同的方法,您就可以有多个匹配相同模式的路由。

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.

【讨论】:

    【解决方案3】:

    尝试改变

    Route::patch('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
    

    Route::delete('/task/{task}',['uses' => 'TaskController@delete', 'as'=> 'task.delete']);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-08
      • 2022-01-04
      • 1970-01-01
      • 2017-04-15
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      相关资源
      最近更新 更多