Laravel JSON()响应返回值的两倍
问题描述:
我已经建立了一个模型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
包含,例如,name
和profile
这两个值都只显示一次。这里有什么问题?为什么显示两次?
答
您必须将结果转换成数组
public function index()
{
$users = User::all()->toArray();
return $users;
}
答
可以返回的数据是这样的,因为使用的是野狗API。
public function index()
{
$users = User::all();
return $this->response->array($users->toArray());
}
什么是你的结果,当你使用'$回报用户 - >的toJSON();'? – manniL
没有区别,值再次返回两次。 – Jordy
你的用户模型结构是什么? – Sachith