从laravel中的数据透视表以相反的顺序获取记录

时间:2016-05-19 20:03:51

标签: laravel eloquent laravel-5.2

通常我们从父关系表中获取数据,我们在laravel中获取数据透视及其关系表的记录,但是我们可以使用数据表中的数据表来获取记录吗?

就像我想从数据透视表中获取产品记录及其数量记录使其独特,因此我想从数据透视表中获取产品数据。我们可以在laravel中做到吗?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用内置查询构建函数以相反的顺序生成表数据。 的 e.g。

$ users = DB :: table('users')                      - > orderBy('id','desc') - > get();

将返回一个与用户ID相反的数组。 此外,您可以使用更多功能。请阅读文档。

https://laravel.com/docs/4.2/queries#advanced-wheres

答案 1 :(得分:0)

在此示例中,当客户从我们的商店订购商品时。然后,您应该能够跟踪订单中的项目,客户详细信息,数量等。因此,我们可以使用以下类来执行此操作。

  • 客户
  • 顺序
  • Order_item
  • 项目

首先,我们必须提及模型中的数据库关系。例如客户有很多订单。因此,在Customer模型中将其表示为如下函数。

公共职能部门(){

           return $this->hasMany(App\Order);

}

同样在订单模型中

公共职能客户(){

       return $this->belongsTo(App\Customer);

}

在创建迁移文件时,您应该在orders表中为customer_id留下未签名的intiger列。保存数据时,应将相关的customer_id保存在订单详细信息中。的 e.g。 订单表将如下所示。

  • id(unsigned,aoutoincrement,integer)
  • customer_id(无符号,整数)
  • TOTAL_PRICE
  • 等 请记住,将customer表中的自动增量ID保存到订单表customer_id。或者让laravel使用方便的方法或类似的方式为你做这个,

$ order-> customer_id = $ customer-> id //假设您拥有上面列出的客户对象。 但是我更喜欢手动保存id,因为它对我来说更清楚。

因此,当您想要查找特定订单的客户时,请回顾客户表中的客户ID。的 e.g。

$顾客=顾客::其中( '编号',$命令 - > CUSTOMER_ID) - >首先();

如果您想查找特定客户的订单,可以这样做,

$ orders_array = Order :: where('customer_id',$ customer-> id)-get();

所以你可以轻松地穿越双方。我没有得到枢轴表的意思。如果您能够描述更多,那么Excel中的Pivot表是否有用?