2016-07-10 2 views
0

Есть ли решение для laravel? Коллекция не работает. Symfony тоже будет работать.

$a = User::all(); //Eloquent Collection <-- i want my method to return this 

    $users = User::rating(); //Eloquent Collection <-- i want my method to return Eloquent Collection 

    return $users; // array 

Вот мой метод:

public static function rating() : array { 

    $arr = []; 

    $data = static::calculateRating() //array; 
    foreach ($data as $item) { 
     $user = static::with("reviews")->find($item->id); 
     $user = collect($user); 
     $user->put("rating", (int)$item->rate_sum); 
     $arr[] = $user; 
    } 

    return $arr; 

} 

Так что я мог бы использовать это $user->name вместо $user['name']

ответ

3

просто использовать оператор приведения

, как указано здесь http://php.net/manual/en/language.types.object.php

Массив преобразуется в объект со свойствами, названных ключами и соответствующими значениями, за исключением цифровых клавиш, которые будут недоступны, если не итеративен

1

Я хотел бы попробовать

$user = json_decode(json_encode($user)); 
Смежные вопросы