Laravel json()响应返回值两次

时间:2016-12-04 22:39:03

标签: php json laravel laravel-5 laravel-5.3

我已经设置了一个模型User,我创建了一个控制器来获取一些值:

<?php 

namespace App\Http\Controllers;

use Dingo\Api\Routing\Helpers;
use Illuminate\Routing\Controller;

use App\Models\User;

class UserController extends Controller
{

    use Helpers;

    public function index()
    {
        $users = User::all();

        return $users;
    }
}

但是当我运行它时,json值会返回两次:

{
  "users": [
    {
      "0": "Firstname Lastname",
      "1": "Accusantium commodi repellat quia eos. Cumque debitis qui deserunt aspernatur harum vitae aut.",
      "2": 1,
      "3": "2016-12-04 21:56:59",
      "4": "2016-12-04 21:56:59",
      "name": "Firstname Lastname",
      "profile": "Accusantium commodi repellat quia eos. Cumque debitis qui deserunt aspernatur harum vitae aut.",
      "house_id": 1,
      "created_at": "2016-12-04 21:56:59",
      "updated_at": "2016-12-04 21:56:59"
    },
}

但是,奇怪的是:上面的响应是我的User模型中有一个空的$visible[]数组。但是,当我将$visible设置为包含时,nameprofile这两个值都只显示一次。这里有什么问题?为什么会出现两次?

2 个答案:

答案 0 :(得分:0)

您必须将结果转换为数组

public function index()
{
    $users = User::all()->toArray();

    return $users;
}

答案 1 :(得分:0)

您可以返回这样的数据,因为您使用的是dingo api。

public function index()
{   
     $users = User::all();

    return $this->response->array($users->toArray());
}

您可以参考:https://github.com/dingo/api/wiki/Responses