【问题标题】:Laravel Duplicate Route namesLaravel 重复的路线名称
【发布时间】:2021-08-06 09:21:05
【问题描述】:

我对路由中的 getpost 方法使用相同的路由名称。这些路线用于相同目的。 例如:我正在调用使用 get 路由

加载添加视图表单

Route::get('add', 'UserController@addView')->name('user.add'); 那么,

我正在调用以使用 post 路由

以该形式存储数据

Route::post('add', 'UserController@store')->name('user.add');

有什么问题吗,如果我像这样使用相同的路由名称?

【问题讨论】:

标签: php laravel routes


【解决方案1】:

不,您不能像documentation 中所述为两条不同的路线使用相同的名称,如果您确实需要命名路线,您应该寻找不同的名称,但如果不需要命名路线,您可以让每个 url 都有它的方法,比如:

Route::get('/your-url', 'App\Http\Controllers\UserController@addView');
Route::post('/your-url', 'App\Http\Controllers\UserController@store');

如果您正在制作 CRUD,您可以:

Route::resource('user', UserController::class);

这将创建 CRUD 所需的所有 url:

【讨论】:

  • 但是,如果我没有为 2 个 get 方法使用相同的路由名称。一个用于post,另一个用于get。它不会返回任何错误。有技术问题吗?
  • 我没有任何错误。如果这在技术上是错误的,原因是什么?
  • @Thisaru 也许你没有使用命名?正如 Abdullah Shakir 在其对同一问题的回复中所评论的那样,如果您尝试按其名称使用该路线,则会导致错误或不良行为。不过,这是一种不好的做法,我建议您遵循文档
【解决方案2】:

实际上,两条路线的名称相同,即name('user.add')。改变它。

【讨论】:

  • 我没有收到任何错误。我问这是技术上的错误..?如果错了是什么原因?
  • 路由名称应该始终是唯一的。尝试重定向return redirect()->route('user.add'); 看看会发生什么
猜你喜欢
  • 2015-02-12
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 2015-10-21
  • 2013-02-01
  • 1970-01-01
相关资源
最近更新 更多