【问题标题】:Laravel giving different controller to the same Get routeLaravel 将不同的控制器赋予相同的 Get 路由
【发布时间】:2018-12-12 05:31:24
【问题描述】:

当我点击页面上的一个按钮时,我希望执行一些功能并再次返回页面。

Route::get('/team/{team}', 'HomeController@team')->name('team');
Route::get('/team/{team}', 'HomeController@makeOwner')->name('make-owner');

我有这样的路线。当我尝试去刀片时,我得到了这个错误。

"Route [team] not defined. (View: /var/www/resources/views/teams.blade.php)"

我该如何解决这个错误或任何建议以更好的方式执行此操作?

【问题讨论】:

  • 这些是否在一个路由组中?使用artisan route:list 是查看所有已注册路由的好方法。
  • 在您的情况下,仅注册了第二条路线。
  • Davit 是对的,没有意识到您使用的是相同的 URI 和方法。

标签: php laravel controller get routes


【解决方案1】:
Route::get('/team/{team}', 'HomeController@team')->name('team');
Route::get('/team/{team}', 'HomeController@makeOwner')->name('make-owner');

当您在路由中使用相同的方法和相同的 uri 时,只会注册最后一个路由。这种情况下只会注册第二个路由。你必须改变你的路线。或者在视图中使用route('make-owner') 而不是route('team')
比如改路线比较好

Route::get('/team/{team}', 'HomeController@team')->name('team');
Route::get('/team/{team}/make-owner', 'HomeController@makeOwner')->name('make-owner'); 

或更改一种路由方法,例如一种get第二种put

Route::get('/team/{team}', 'HomeController@team')->name('team');
Route::put('/team/{team}', 'HomeController@makeOwner')->name('make-owner');

【讨论】:

  • 没有办法使用同一个URI吗?
  • 两条路线有一些方法和相同的 uri 你不能,你可以一个 get 一个 post 方法
  • 也许我能说出我想要做什么然后你可以给出一个想法。
  • 是的,告诉你你想做什么
  • 有一个页面叫team,页面上有一些用户。我在每个用户旁边放了一个链接按钮。单击按钮时,该用户将成为经理角色,然后将重新加载相同的团队页面。
猜你喜欢
  • 2013-09-24
  • 2016-03-29
  • 2017-04-05
  • 2016-10-03
  • 2016-03-03
  • 2021-05-26
  • 2018-02-18
  • 2011-01-09
  • 1970-01-01
相关资源
最近更新 更多