我必须建立一个api。 它有一条路线。客户端正在发送带有XML的POST请求。 基于那个xml,我必须决定调用witch controller @ action。 而且我有很多控制器。
不幸的是,我无法修改客户端。
你有什么建议我怎么能以Laravel的方式做到这一点?
例如
POST["body"] =
"...
<controller>content</controller>
<action>index</action>
..."
我想调用ContentController :: index()
THX!
答案 0 :(得分:0)
反思的东西。这是一个很大的魔力,值得深入研究它。
我解析xml没问题。所以这是一个更简单的例子
网址:/api/request/content/show
routes.php文件
Route::get('api/request/{controller}/{action}', 'ApiController@request');
ApiController.php
class ApiController extends Controller
{
public function request($controller, $action)
{
//some error check
$controller = 'App\Http\Controllers\\' . ucfirst($controller) . 'Controller';
$params = "Put some params here";
$reflectionMethod = new \ReflectionMethod($controller, $action);
$reflectionMethod->invoke(new $controller, $params);
}
}
ContentController.php
class ContentController extends Controller
{
public function show($params)
{
dd($params);
}
}
它正在发挥作用!
很多!