2015-09-17 5 views
1

От многих до многих отношений между пользователями и отчетами. У любого пользователя может быть много отчетов. Я хочу сортировать отчеты для пользователя по столбцу created_at. Как я могу закончить это ниже, чтобы сделать это?Laravel сортировать по отношениям в Eloquent

$x = User::find(1)->report..... 

Для тех, кто интересно, вы добавите скобку в конце метода отношений, когда вы СЦЕПЛЕНИЕ на функции, как OrderBy() вы оставить его, когда вы просто хотите коллекции. ЕСЛИ вам нужно изменить возвращенную коллекцию путем сортировки или что-то, что вы добавили бы в скобки, потому что вы фактически добавили (CHAINING) другой метод, лежащий в основе отношения.

ответ

0
$x = User::find(1)->reports()->orderBy('created_at')->get(); 

См doc. Также here

Со второй ссылки:

После того, как отношения определенно, вы можете получить доступ к роли в пользователе с использованием ролей динамического свойства:

$user = App\User::find(1); 

foreach ($user->roles as $role) { 
    // 
} 

Конечно, как всех других типов отношений, вы можете вызвать метод ролей для продолжения связывания запросов запроса с отношением:

$roles = App\User::find(1)->roles()->orderBy('name')->get(); 
+0

Да, я понял, что ни одна из них не поможет никому, если у них действительно была эта проблема. Зная, что много для многих отношений, и какой порядок сделал, это не помогает. ДИФФЕРЕНЦИРОВАНИЕ между отчетами и отчетами() есть. Ни одна ссылка не упоминает разницу. Его не полезно бросить кучу ссылок для справки только потому, что его ларавельные документы. Stackoverflow известен тем, что пользователи делают это, когда это не помогает или не добавляет к решению –

+0

. См. Мое редактирование, в котором показаны соответствующие части документа, которые его объясняют. Пожалуйста, также подумайте над тем, чтобы поддержать и/или принять ответы. – bernie