Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel 5根据路由返回HTML或JSON_Php_Laravel_View_Routes_Laravel 5 - Fatal编程技术网

Php laravel 5根据路由返回HTML或JSON

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'); //... } 路由::组(

我想显示不同的输出-JSON或HTML

我不能使用
\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){…}