gpt4 book ai didi

php - laravel 5 根据路由返回 HTML 或 JSON

转载 作者:行者123 更新时间:2023-12-04 18:02:36 24 4
gpt4 key购买 nike

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

我无法使用 \Request::ajax() 功能,因为我只是收到正常请求(JSON 响应不是基于 XHR 请求)。

是否有可能区分不同路径的输出?例如。检查 Controller 是否被前缀为“mob”的路由调用,然后基于此为输出创建一个开关?

app/Http/routes.php:

Route::group( ['prefix' => 'api'], function(  ) {

Route::resource( 'activation', 'ActivationController' );
//...
}

Route::group( ['prefix' => 'mob'], function( ) {

Route::resource( 'activation', 'ActivationController' );
//...
}

app/Http/Controllers/ActivationController:

<?php namespace App\Http\Controllers;

use App\Activation;
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
class ActivationController extends Controller {

public function index()
{
$activation = Activation::all( );

// switch to decide which output to show, based on the routes...
if ($prefix == "mob") {
return response()->view('template', compact($activation)); // not sure if it works this way
} else {
return response()->json($activation);
}

}

//...

我愿意接受实用且简单的解决方案。不能是路由解决方案,而是一种我不必更改太多代码的方法。

最佳答案

您可以使用接受通配符/占位符的 Request::is() 方法。所以你可以这样做:

if($request->is('mob/*')) {
// do your mob response
} else {
// do the other response
}

如果你每次做响应时都有这个,那么你可以编写一个自定义响应宏来处理 if 并将数据作为数组并将其作为 json 返回或将其提供给你的 Blade View 。

关于php - laravel 5 根据路由返回 HTML 或 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com