Php 从数据透视表获取数据

Php 从数据透视表获取数据,php,laravel,eloquent,Php,Laravel,Eloquent,我有两张带透视表的桌子 表用户 id |姓名|电子邮件 表饮料 id |名称|价格 透视表用户\u饮料 id |用户id |饮料id |数量|价格|状态 饮料型号 public function users() { return $this->belongsToMany('App\User', 'user_drinks', 'drink_id', 'user_id')->withPivot('price', 'quantity')->withTimestamps(); }

我有两张带透视表的桌子

用户

id |姓名|电子邮件

饮料

id |名称|价格

透视表用户\u饮料

id |用户id |饮料id |数量|价格|状态

饮料型号

public function users()
{
   return $this->belongsToMany('App\User', 'user_drinks', 'drink_id', 'user_id')->withPivot('price', 'quantity')->withTimestamps();
}
public function drinks()
{
   return $this->belongsToMany('App\Drink', 'user_drinks', 'drink_id', 'user_id')->withPivot('price', 'quantity')->withTimestamps();
}
用户模型

public function users()
{
   return $this->belongsToMany('App\User', 'user_drinks', 'drink_id', 'user_id')->withPivot('price', 'quantity')->withTimestamps();
}
public function drinks()
{
   return $this->belongsToMany('App\Drink', 'user_drinks', 'drink_id', 'user_id')->withPivot('price', 'quantity')->withTimestamps();
}
我想从数据透视表中获取购买饮料的最新用户以及价格和数量,例如

名为John的用户1以50美元的价格购买了2杯咖啡


名为Jane的用户2以75美元的价格购买了3杯咖啡

将此关系用于用户模型

public function drinks()
{
    return $this->belongsToMany(Drink::class, 'user_drinks')->withPivot(['quantity', 'price','status'])->withTimestamps();
}
要获得它:

$user = User::with(['drinks' => function ($q) {
  $q->orderBy('created_at', 'desc');
}])->orderByDesc('drinks.created_at')->get();

使用belongToMany关系。堆栈溢出不是代码编写服务。请用您遇到的具体错误发布您在代码工作方面的最佳尝试。@Yaskur谢谢,但这将返回第一个用户购买的所有饮料,我想获取任何用户购买的最新饮料Yaskur,现在它返回尚未购买饮料的用户,我只需要那些已购买饮料的用户。我已经编辑了我的问题。谢谢