Laravel 将不同的控制器赋予相同的 Get 路由
Posted
技术标签:
【中文标题】Laravel 将不同的控制器赋予相同的 Get 路由【英文标题】:Laravel giving different controller to the same Get route 【发布时间】: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 和方法。
【参考方案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,页面上有一些用户。我在每个用户旁边放了一个链接按钮。单击按钮时,该用户将成为经理角色,然后将重新加载相同的团队页面。以上是关于Laravel 将不同的控制器赋予相同的 Get 路由的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 中为两种不同的控制器功能方法使用相同的路由
相同的路由但在 Laravel 5.1 路由中调用不同的控制器
Laravel中的路由问题,带有多个控制器和具有相同名称的不同路由[关闭]