如何在Laravel5上获取SUM数组?

时间:2017-01-27 01:39:32

标签: postgresql laravel laravel-5 laravel-5.3 postgresql-9.5

我的postgresql数据库是这样的。

$points = \App\PointRecord::selectRaw('member_id, SUM(point) AS points') -> groupBy('member_id') -> orderBy('points', 'desc') -> get() -> toArray();

$your_score = array_search($user -> id, $points) + 1;

我想获得数组排名。所以现在我这样做。

Array ( [0] => Array ( [user_id] => 3 [points] => 150 ) [1] => Array ( [user_id] => 2 [points] => 100 ) [2] => Array ( [user_id] => 1 [points] => 10 ) )

这个$ points数组返回此。

>>> usersClient.activate_user(user)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/shetty/work/django/pyenv/lib/python2.7/site-packages/okta/UsersClient.py", line 129, in activate_user
    response = ApiClient.post_path(self, '/{0}/lifecycle/activate'.format(uid))
  File "/Users/shetty/work/django/pyenv/lib/python2.7/site-packages/okta/framework/ApiClient.py", line 74, in post_path
    return self.post(self.base_url + url_path, data, params)
  File "/Users/shetty/work/django/pyenv/lib/python2.7/site-packages/okta/framework/ApiClient.py", line 53, in post
     if self.__check_response(resp, attempts):
  File "/Users/shetty/work/django/pyenv/lib/python2.7/site-packages/okta/framework/ApiClient.py", line 88, in __check_response
    raise OktaError(json.loads(resp.text))
OktaError: Not found: Resource not found: <okta.models.user.User.User instance at 0x10a432050> (User)

但我不想使用Raw。我正在寻找其他想法。

有谁知道?

1 个答案:

答案 0 :(得分:0)

我认为您的解决方案已经成功,您希望将原始数据更改为另一个。 无论如何,如果你真的想要改变,你需要添加更多代码,试试这个

    $outputs = [];
    $query = \App\PointRecord:::groupBy('member_id')->get();
    foreach ($query as $e) {
        $data = $e->toArray();
        $data['point'] = $e->where('member_id', $data["member_id"])->sum('point');
        $outputs[] = $data;
    }
    dd($outputs);