【发布时间】:2015-09-05 04:27:52
【问题描述】:
在 laravel 中,给定的 url 被路由到特定的控制器方法。在该方法中,我想返回响应,就好像用户访问了不同的路线一样。我可以这样做:
return App::make('OtherController')->otherMethod();
但是,这取决于我对我想要发送到的类和方法名的硬编码。我更愿意将它们发送到由路由名称标识的另一个控制器,而不是控制器类的名称。我该怎么做?
一种可能性是return Redirect::route($otherRoute),除了 a) 这是一个实际的重定向,这意味着它会增加页面加载时间并替换他们看到的 url,并且 b) 它使得传输 POST 数据变得困难。所以,我不想那样做。
我如何调用控制器,只知道它所链接的路由的名称?
【问题讨论】:
-
在 laravel 5 中使用 $request = Request::create('/internal/location', 'GET'); $response = Route::dispatch($request);
-
这在 Laravel 4 中也可以正常工作。 Route::get('events', ['as' => 'events', function () { $request = Request::create(URL::toSite('lp/events'), 'GET'); 返回路由::dispatch($request); }]);
标签: php laravel-4 url-routing laravel-routing