Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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 我所有的JSON输出(来自LaravelAPI应用程序)都包含在一个数据标记中,我如何删除它?_Php_Android_Json_Laravel_Api - Fatal编程技术网

Php 我所有的JSON输出(来自LaravelAPI应用程序)都包含在一个数据标记中,我如何删除它?

Php 我所有的JSON输出(来自LaravelAPI应用程序)都包含在一个数据标记中,我如何删除它?,php,android,json,laravel,api,Php,Android,Json,Laravel,Api,我正在Laravel中开发一个API,它输出JSON供Android应用程序使用。我在Laravel方面工作,我的朋友在Android方面工作。我们可以将Android应用程序连接到API,但由于某种原因,它无法访问数据。我们认为存在的问题是,Laravel的所有JSON输出都在一个数据标签中,Android应用程序无法访问该标签 所有文章的代码 public function toArray($request) { return [ 'status' => 'ok'

我正在Laravel中开发一个API,它输出JSON供Android应用程序使用。我在Laravel方面工作,我的朋友在Android方面工作。我们可以将Android应用程序连接到API,但由于某种原因,它无法访问数据。我们认为存在的问题是,Laravel的所有JSON输出都在一个数据标签中,Android应用程序无法访问该标签

所有文章的代码

public function toArray($request)
{
    return [
      'status' => 'ok',
      'totalResults' => count($this),
        'articles' => ArticleResource::collection($this->collection),
    ];
}
一篇文章的代码

public function toArray($request)
{
    return [
        'source' => [
          'id' => $this->id,
          'name' => $this->name
        ],
          'author' => null,
          'title' => $this->title,
          'description' => $this->description,
          'url' => $this->url,
          'urlToImage' => null,
          'publishedAt' => $this->created_at,
          'content' => null
      //]
    ];
}
我一直在寻找它是如何以及为什么都在数据标记中的,或者这是否就是我们遇到问题的原因,但我几乎找不到其他Laravel在数据标记中输出JSON的例子,更不用说实际修复它了。有人知道我怎么解决这个问题吗?如果您需要更多信息/代码/屏幕截图,请告诉我,谢谢

编辑:

中间件代码:

Authenticate.php

protected function redirectTo($request)
{
    if (! $request->expectsJson()) {
        return route('login');
    }
}
RedirectIfAuthenticated.php

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/home');
    }

    return $next($request);
}
TrimStrings.php

protected $except = [
    'password',
    'password_confirmation',
];
TrustProxies.php

protected $proxies;
protected $headers = Request::HEADER_X_FORWARDED_ALL;
VerifyCsrfToken.php

protected $addHttpCookie = true;
protected $except = [
(中间件代码结束)


这适用于单个项目

public function toArray($request)
{
    static::$wrap = null;

    return [
        'source' => [
          'id' => $this->id,
          'name' => $this->name
        ],
          'author' => null,
          'title' => $this->title,
          'description' => $this->description,
          'url' => $this->url,
          'urlToImage' => null,
          'publishedAt' => $this->created_at,
          'content' => null
      //]
    ];
}
若它有您提到的分页链接,那个么它只是强制数据存储其他元数据信息。资源就是这样工作的。在中检查这一点,尤其是数据包装和分页


其他选项是不使用资源并创建自己的输出。

您如何访问API响应?它应该可以通过
response.data
获得。您似乎有一些中间件可以改变响应。检查启用的中间件。在客户端尝试解析json,因为json是以字符串格式从一个点发送到另一个点的,所以在访问数据标记之前,您可能不会将其转换为json。Tim Lewis,我不完全确定您的意思,我在google chrome或postmanJagad89上检查API输出,我刚刚在编辑中添加了我的中间件代码,目前还有另外两个中间件文件的函数为空。很抱歉,起初没有看到这个。数据标记从不在单个项中,只在数组中。因此,如果我删除分页,它应该会删除所有数据包装的需要?是的,这是交易啊,好的,我现在理解了数据包装,非常感谢。在第一次尝试删除它时,我得到了一个错误,调用了一个未定义的方法“mapInto”。不确定这是什么,但现在查看它,所以我只是将->paginate()替换为->get(),而不是删除,它可以工作。不完全确定我是不是应该这样做,但是嘿,它起作用了哈哈。再次感谢Vladan和所有帮助过你的人