Php 如何在内部重新路由laravel呼叫(无重定向)?

Php 如何在内部重新路由laravel呼叫(无重定向)?,php,laravel-4,url-routing,laravel-routing,Php,Laravel 4,Url Routing,Laravel Routing,在laravel中,给定的url被路由到特定的控制器方法。在该方法中,我希望返回响应,就像用户访问了不同的路由一样。我可以这样做: return App::make('OtherController')->otherMethod(); 但是,这取决于我对要发送给它们的类和方法名称的硬编码。我更愿意将它们发送到另一个由路由名称标识的控制器,而不是控制器类的名称。我该怎么做 一种可能是返回Redirect::route($otherRoute),除了a)这是一个实际的重定向,这意味着它增加了

在laravel中,给定的url被路由到特定的控制器方法。在该方法中,我希望返回响应,就像用户访问了不同的路由一样。我可以这样做:

return App::make('OtherController')->otherMethod();
但是,这取决于我对要发送给它们的类和方法名称的硬编码。我更愿意将它们发送到另一个由路由名称标识的控制器,而不是控制器类的名称。我该怎么做

一种可能是
返回Redirect::route($otherRoute)
,除了a)这是一个实际的重定向,这意味着它增加了页面加载时间并替换了他们看到的url,以及b)它使POST数据传输变得困难。所以,我不想那样做


如果我只知道它链接到的路线的名称,如何调用控制器?

正如@Mruf所说,您可以尝试:

return \Route::dispatch(\Request::create($otherRoute, 'GET')); 

在Laravel5中,使用$request=request::create('/internal/location','GET')$响应=路由::调度($request);这在Laravel 4中也适用。路由::get('events',['as'=>'events',函数(){$request=request::create(URL::toSite('lp/events'),'get');返回路由::dispatch($request);});当我在远程clinet上使用此选项时,会出现route is not found错误。如果我添加($otherroute),将显示正确的路线。当我在服务器上的浏览器中复制粘贴转储的路由时,它会工作。有什么建议吗?