Как мне изменить этот конструктор запросов с Kohana 2.4 на Kohana 3?

У меня был этот веб-сайт, созданный в течение нескольких месяцев, и я только что перешел на Kohana 3. Я просто хотел бы преобразовать этот построитель запросов K2.4 в построитель запросов K3.

return DB::select(array('posts.id', 'posts.created', 'posts.uri', 'posts.price', 'posts.description', 'posts.title',
                'image_count' => db::expr('COUNT(images.id)')))
        ->from('posts')
        ->join('images')->on('images.post_id', '=', 'posts.id')
        ->group_by(array('posts.id'))
        ->order_by('posts.id', 'DESC')
        ->limit($limit)
        ->offset($offset)
        ->execute();

person Teej    schedule 11.01.2011    source источник


Ответы (1)


Единственное изменение, которое вам нужно сделать, это удалить окружающий массив из DB::select(), а для поля с псевдонимом использовать массив

Конструктор запросов в Kohana3 принимает любое количество аргументов, см. http://kohanaframework.org/guide/database/query/builder

return DB::select('posts.id', 'posts.created', 'posts.uri', 
            'posts.price', 'posts.description', 'posts.title',
            array('COUNT("images.id")', 'image_count'))
    ->from('posts')
    ->join('images')->on('images.post_id', '=', 'posts.id')
    ->group_by(array('posts.id'))
    ->order_by('posts.id', 'DESC')
    ->limit($limit)
    ->offset($offset)
    ->execute();
person SpadXIII    schedule 11.01.2011
comment
Я на самом деле получил его час назад. Я просто ждал, пока кто-нибудь даст ответ, чтобы я мог принять;) - person Teej; 11.01.2011
comment
хехе, я не видел q до часа назад - person SpadXIII; 12.01.2011
comment
А еще лучше используйте array('COUNT("images.id")', 'image_count'), чтобы ваш столбец был правильно экранирован. - person shadowhand; 23.01.2011
comment
Я изменил код, чтобы обеспечить правильное экранирование столбца. - person SpadXIII; 17.02.2011