在同一路由中使用多个控制器时,出现未定义路由的错误:
这是我的控制器的代码:
public function triealphabet(){
$list_grocery = miscellaneous::all();
$list_grocery = $list_grocery->sortBy('name');
return view('markets.miscellaneous')->with('list_grocery',$list_grocery);}
public function triecreation(){
$list_grocery = miscellaneous::all();
$list_grocery = $list_grocery->sortBy('created_at');
return view('markets.miscellaneous')->with('list_grocery',$list_grocery);}
这是我的路线代码:
Route::get('/miscellaneous','groceryController@listGrocery')->name('groceriesmarket');
Route::get('/miscellaneous','groceryController@triealphabet')->name('triealphabet');
Route::get('/miscellaneous','groceryController@triecreation')->name('triecreation');
P.S:如果我使用其他路由路径(例如“ / miscellanous-tri-alphabet”),则不会收到其他任何错误,但除此之外,还会收到未定义路由的错误
答案 0 :(得分:0)
您可以在此处检查:Laravel 5.2 assigning same route to different controller action by conditions。这不是我的,而是他的一种创造新路线和特质的方法。
答案 1 :(得分:0)
您的3条路线具有相同的http方法和uri,因此只有最后一条路线保留在路线集合中。所以之前的2条路线是不确定的。您可以在课堂上查看详细信息:
Illuminate\Routing\RouteCollection.php
第65行
/**
* Add the given route to the arrays of routes.
*
* @param \Illuminate\Routing\Route $route
* @return void
*/
protected function addToCollections($route)
{
$domainAndUri = $route->getDomain().$route->uri();
foreach ($route->methods() as $method) {
$this->routes[$method][$domainAndUri] = $route;
}
$this->allRoutes[$method.$domainAndUri] = $route;
}