2016-05-17 115 views
0

我正在使用Laravel路由与资源控制器。我有两个路线为我的应用程序如下:Laravel中的自定义路由5.2

Route::resource('route1','route1Controller'); 
Route::resource('route2','route2Controller'); 

现在我想生成自定义路由,可以转发请求到其他路由。要使用的路线的名称应通过发布参数传递。假设我访问了以下网址:'www.mysite.com/navigate'。该URL包含一个名为'use_controller'的值为'route1'的post参数。所以应该是这样的:

Route::get('navigate',function(){ 
    $use_controller == Request::all()['use_controller']; 
    if($use_controller=="route1") 
     use Route::resource('route1','route1Controller'); 
    else if($use_controller=="route2") 
     use Route::resource('route2','route2Controller'); 
}); 

是否有可能做这样的事情?先谢谢你。

+0

你的意思是你在'/ navigate'路由里面有一个表单,里面保存了一个use_controller的输入通过post?否则它没有意义你在说什么 –

+0

不,我没有任何内部导航。我想将导航作为每个路线请求的入口点。从那里,每个请求都应该被路由。 –

回答

0

我前段时间做了类似的事情。我将所有路线声明为“资源”,并且我有一条主要路线。然后,我把参数从URL请求,并提出从主路由重定向:

return redirect()->action("{$controller}@{$action}"); 

当然,你必须建立验证检查,如果从参数控制器和动作的实际存在。

+0

好的。非常感谢你。但在这里,我必须分别声明所有方法。例如控制器@索引,控制器@显示,控制器@更新等? –

+0

好的,如果你想使用restfull控制器(就像你使用Route :: resource一样),你必须在控制器中使用这些方法。你心里还有别的东西吗? – TheFallen