Сортировка по зарубежному табличному значению с Kohana ORM - PullRequest
4 голосов
/ 10 сентября 2010

Есть ли способ сортировки (или упорядочения по) в ORM с использованием значения из сторонней таблицы?

Можете ли вы сделать что-то вроде следующего:

ORM::factory("table")->order_by("table.foregin_table.column" , "ASC") 

Или вам нужно использовать какой-нибудь обычный MySQL и объединить таблицы вместе, старая школа?

1 Ответ

6 голосов
/ 23 сентября 2010

Конечно, это возможно.Например, у меня есть две таблицы с фотографиями и голосами по соотношению один ко многим.Допустим, я хочу отсортировать картинки по количеству голосов, чтобы получить самые популярные картинки.Это будет так:

$pictures = ORM::factory('picture')
    ->select(array('COUNT("picture_votes.id")', 'votes'))
    ->join('picture_votes','left')
    ->on('picture_votes.picture_id','=','pictures.id')
    ->group_by('pictures.id')
    ->order_by('votes','desc')
    ->find_all();

Это даст все фотографии, отсортированные по количеству голосов в результате.

...