Я использую Eloquent ORM в течение некоторого времени и знаю это достаточно хорошо, но я не могу сделать следующее, а это очень просто сделать в Fluent.
У меня есть пользователи с песнями "многие-ко-многим", промежуточная таблица - song_user (как и должно быть). Хотелось бы получить топовые песни пользователя по количеству воспроизведений. Конечно, количество воспроизведений хранится в промежуточной таблице.
Я могу сделать это на Fluent:
$songs = DB::table('songs')
->join('song_user', 'songs.id', '=', 'song_user.song_id')
->where('song_user.user_id', '=', $user->id)
->orderBy("song_user.play_count", "desc")
->get();
Легкий. Но я хочу сделать это в Eloquent, что, конечно, не работает:
$songs = Song::
with(array("song_user" => function($query) use ($user) {
$query->where("user_id", "=", $user->id)->orderBy("play_count", "desc");
}))
$songs = $usr->songs()->pivot()->order_by('play_count','desc')->songs();
? Вопрос в том, сможете ли вы вернуться кsongs
после сводной таблицы, поскольку это не похоже на нормальную модель. - person dualed   schedule 14.01.2013SongUser::where("user_id", "=", $user->id)->etc...
). - person duality_   schedule 15.01.2013$this->has_many('song_user')
- person dualed   schedule 15.01.2013