CakePhp, получение общего количества строк в контейнере - PullRequest
0 голосов
/ 02 сентября 2010

У меня есть запрос с использованием поведения Containable в cakephp, который выглядит следующим образом:

    $x = $this->find('first',array('contain'=>array(
    'User' => array(
        'SelectionsTeam' => array('conditions' => $conditionTeamSelection,
            'Team' => array(
                        'fields' => array('name','city','id'),
                            'TeamsStat' => $condition,
                                            ),
            'PointsHistory' => array('fields' => array('points'))
                                    ),

    ),
   'conditions' => array('id'=>$id)
));

Все работает хорошо, но таблица PointsHistory возвращает мне, например, 10 строк с 1 полем (точки). Как я могу сделать, чтобы получить СУММ каждой из этих 10 строк точек непосредственно в содержании . Потому что теперь мне нужно сделать foreach и составить сумму для каждой строки PointsHistory, которую, я думаю, можно избежать.

В заключение хотелось бы, чтобы таблица выглядела следующим образом: [PointsHistory] => [Total] => 10

вместо:

[PointsHistory] => 
             [0] => 
                    ['points']
                           => 2 
             [1] => 
                    ['points'] 
                           => 1 
             [2] => 
                    ['points'] 
                           => 3

и т.д.

1 Ответ

2 голосов
/ 02 сентября 2010

Я не думаю, что можно получить точно

[PointsHistory] => [Total] => 10

, но я считаю, что вы ищете:

    $x = $this->find('first',array('contain'=>array(
    'User' => array(
        'SelectionsTeam' => array('conditions' => $conditionTeamSelection,
            'Team' => array(
                        'fields' => array('name','city','id'),
                            'TeamsStat' => $condition,
                                            ),
            'PointsHistory' => array('fields' => array('SUM(points) total_points'))
                                    ),

    ),
   'conditions' => array('id'=>$id)
));

Результат будет примерно таким:

[PointsHistory] => [0] => [Total] => 10

Я не тестировал, поэтому измените уровень отладки на 2 и посмотрите, какой код он генерирует:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...