2016-12-04 131 views
3

我已經建立了一個模型User和我創建了一個控制器得到一些值:Laravel JSON()響應返回值的兩倍

<?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" 
    }, 
} 

但是,一個奇怪的事情:上面的反應是當我的用戶模型中有一個空的$visible[]數組。但是當我設置$visible包含,例如,nameprofile這兩個值都只顯示一次。這裏有什麼問題?爲什麼顯示兩次?

+0

什麼是你的結果,當你使用'$回報用戶 - >的toJSON();'? – manniL

+0

沒有區別,值再次返回兩次。 – Jordy

+0

你的用戶模型結構是什麼? – Sachith

回答

0

您必須將結果轉換成數組

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

    return $users; 
} 
0

可以返回的數據是這樣的,因爲使用的是野狗API。

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

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

你可以參考:https://github.com/dingo/api/wiki/Responses