Php laravel 5根据路由返回HTML或JSON
我想显示不同的输出-JSON或HTML 我不能使用Php laravel 5根据路由返回HTML或JSON,php,laravel,view,routes,laravel-5,Php,Laravel,View,Routes,Laravel 5,我想显示不同的输出-JSON或HTML 我不能使用\Request::ajax()功能,因为我只得到了正常的请求(JSON响应不基于XHR请求) 是否有可能通过不同的路径来区分输出?例如,检查控制器是否由前缀为“mob”的路由调用,然后根据该前缀为输出创建交换机 app/Http/routes.php: Route::group(['prefix'=>'api'],函数(){ 路由::资源('activation','ActivationController'); //... } 路由::组(
\Request::ajax()
功能,因为我只得到了正常的请求(JSON响应不基于XHR请求)
是否有可能通过不同的路径来区分输出?例如,检查控制器是否由前缀为“mob”的路由调用,然后根据该前缀为输出创建交换机
app/Http/routes.php:
Route::group(['prefix'=>'api'],函数(){
路由::资源('activation','ActivationController');
//...
}
路由::组(['prefix'=>'mob'],函数(){
路由::资源('activation','ActivationController');
//...
}
app/Http/Controllers/ActivationController:
您可以使用接受通配符/占位符的Request::is()方法。
因此,您可以执行以下操作:
if($request->is('mob/*')) {
// do your mob response
} else {
// do the other response
}
如果每次执行响应时都有此功能,则可以编写一个自定义响应宏来处理此功能,并将数据作为数组返回,作为json返回,或将其提供给刀片视图。您可以将前缀作为参数传递,然后根据给定的前缀在操作中处理业务
REF:您可以使用接受的答案。只需编辑中间件,使其不会检查输入中的contentType
。这看起来很有趣,必须尝试一下。自定义响应是我切换后的下一个意图。我得到一个错误未定义变量:request
。我如何正确访问它?如果(\Request::is('mob/*'){}
成功了。我是否需要指定一些特殊的东西来使用$Request->is()
?在控制器方法中,您可以定义$Request作为第一个参数,如下所示:method(Request$Request,$theotherone){…}