Tho*_*ton 38 laravel laravel-4
在Laravel 3中,您可以使用Controller :: call方法调用控制器,如下所示:
Controller::call('api.items@index', $params);
我查看了L4中的Controller类,发现这个方法似乎取代了旧方法:callAction().虽然它不是静态方法,但我无法使其工作.可能不是正确的方法吗?
我怎么能在Laravel 4中这样做?
Net*_*eto 90
嘿,你们可以使用IoC ......
试试这个
App::make($controller)->{$action}();
Run Code Online (Sandbox Code Playgroud)
例如:App :: make('HomeController') - > getIndex();
你也可以提供参数
App::make('HomeController')->getIndex($params);
Run Code Online (Sandbox Code Playgroud)
Lau*_*kel 50
如果我理解正确,那么您正在尝试构建以API为中心的应用程序,并希望在Web应用程序内部访问API,以避免发出额外的HTTP请求(例如,使用cURL).那是对的吗?
您可以执行以下操作:
$request = Request::create('api/items', 'GET', $params);
return Route::dispatch($request)->getContent();
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要指定控制器@方法目标,而是需要使用通常用于从外部访问API的uri路由.
更好的是,您现在可以指定请求应响应的HTTP谓词.
dan*_*i24 10
像Neto说你可以用户:
App::make('HomeController')->getIndex($params);
Run Code Online (Sandbox Code Playgroud)
但是要发送带有额外数据的POST,你可以使用"merge"方法:
$input = array('extra_field1' => 'value1', 'extra_field2' => 'value2');
Input::merge($input);
return App:make('HomeController')->someMethodInController();
Run Code Online (Sandbox Code Playgroud)
这个对我有用!
再见
| 归档时间: |
|
| 查看次数: |
39533 次 |
| 最近记录: |