我有两个模型:item和faq。它们在belongsToMany中,彼此之间具有正确创建的连接表:item_faq(两者都是单数)。我的联接表上有一个额外的字段用于订购。
在我看来,我得到了所有常见问题解答,如果他们有一个数据透视表记录,我输出"检查"在一个复选框上。我也在复选框列表上进行拖放排序,效果很好。
一些代码说明:
// 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);
}
联接表的架构:
我的问题是,他们没有按照数据透视表上的订单栏进行排序。
我使用的很简单:
$faqs = \App\Faq::with('items')->get();
要检索常见问题解答,这可以获取所有常见问题解答,如果它们相关,则会检查复选框。
如何通过联接表上的订单栏订购这些?
答案 0 :(得分:0)
查看Eager Load Constraints,我认为它将有助于提供解决方案。来自文档:
当然,急切加载闭包不仅限于“约束”。您也可以申请订单:
<md-tabs md-stretch-tabs="always" md-selcted="1">
<!-- ; $event.stopPropagation(); -->
<md-tab ng-repeat="w in shoe.wearers" label="{{$index +1}}" md-menu-disable-close="md-menu-disable-close" ng-click="openMenu($mdOpenMenu, $event)">
<md-content>{{w}}</md-content>
</md-tab>
</md-tabs>