2016-09-21 4 views
0

У меня есть две модели: item и faq. Они находятся в toMotMany друг с другом с правильно созданной таблицей соединения: item_faq (единственное из них). Моя таблица соединений имеет дополнительное поле для заказа.Laravel 5.0 как заказать красноречие с() запросом

На мой взгляд, я получаю все faq и, если у них есть сводная таблица, я выводил «check» на флажке. У меня также есть порядок перетаскивания в списке флажков, и это хорошо работает.

Несколько код Примечания:

// ITEMS MODEL 
public function faqs(){ 
     return $this->belongsToMany('App\Faq'); 
    } 

// FAQ MODEL 
public function items(){ 
    return $this->belongsToMany('App\Item'); 
} 

public function hasItem($item) { 
    $items = $this->items->lists('id'); 
    return in_array($item, $items); 
} 

Схема присоединиться к таблице:

  • item_id
  • faq_id
  • заказ
  • временные метки

Моя проблема заключается в том, что они не загружаются, отсортированные по столбцу заказа на сводной таблице.

Я использую очень простой:

$faqs = \App\Faq::with('items')->get(); 

Чтобы получить часто задаваемые вопросы, и это работает на получение всех чаво, и если они связаны между собой, он проверяет флажок.

Как я могу заказать их по столбцу заказа на таблице соединений?

ответ

0

Посмотрите на Eager Load Constraints и I думаю это поможет обеспечить решение. Из документов:

Конечно, с нетерпением загрузка Закрытие не ограничивается «ограничениями». Вы также можете применять заказы:

$users = User::with(['posts' => function($query) { 

    $query->orderBy('created_at', 'desc'); 

}])->get(); 
+0

Я попытался это, но порядок элементов не изменяется. Если поле orderBy не найдено, порядок возвращается к некоему по умолчанию? Должен ли я ссылаться на item_faq.order или просто на заказ? –

+0

Глядя на вашу предоставленную 'FAQ модель', я не вижу отношения' items'. Он есть и просто не указан выше? Что касается поведения по умолчанию, я считаю, что он сортируется по 'id'. Я не подозреваю, что добавление 'item_faq.order' изменится, так как закрытие привязано к соединению' items'. – camelCase

+0

Приносим извинения, что я неправильно обозначил этот код. Отношение Items определено выше (сейчас). В принципе orderBy, похоже, не влияет на порядок, который я не понимаю. –

Смежные вопросы