将eloquent对象转换为数组集合

时间:2015-06-19 05:08:32

标签: laravel laravel-4 laravel-5

这是我的选择陈述:

$users = User::where("username", "LIKE", "%" . $query . "%")
    ->select("username")
    ->get();

目前输出为:

[{"username":"Test"}]

我需要它以下列格式之一输出:

{ 'data': ['result1', 'result2', ... ] }

OR

['result1', 'result2', ...]

我该怎么做?

2 个答案:

答案 0 :(得分:1)

说得太快了:

$users = User::where("username", "LIKE", "%" . $query . "%")
    ->lists("username");

return Response::json(array("data" => $users));

答案 1 :(得分:0)

您可以使用普通的PHP。 只需反转json对象。

在你的情况下,你可以做$ users = @json_decode(json_encode($ users),true);

或者您可以像这样

向父级或当前控制器添加静态方法
public static function objectToArray(&$object)
{
    return @json_decode(json_encode($object), true);
}