是否可以创建路由,在同一个URL上根据Content-Type
标题调用不同控制器中的不同操作?
我不需要这个用于测试目的。我需要在api.php
文件中使用某些内容。
答案 0 :(得分:0)
我一直在寻找这种方法,最后我根据要检查的特殊报头注册了路由。
就我而言,我想与您在Content-Type
上使用相同的URL库和基于Action的库。
我将所有标头都放在web.php
中,并且可以在api.php
中使用它,并进行检查以确认是否设置了Content-Type
,如下所示:
$headers = apache_request_headers();
// check headers Content-Type is application json for any call base on json request
if(array_key_exists('Content-Type', $headers) && strtolower($headers['Content-Type']) == 'application/json'){
// register routes that need Content-Type header
Route::get('/dashboard', "AuthController@dashboardWithHeader");
}else{
// register route that dont need this special header
Route::get('/dashboard', "AuthController@dashboard");
}
通过这种方法,如果设置了Content-Type
标头,则可以关联已注册的路由,反之亦然。