首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在laravel中返回带有外键的2个表的数据

如何在laravel中返回带有外键的2个表的数据
EN

Stack Overflow用户
提问于 2021-02-16 14:43:00
回答 2查看 282关注 0票数 1

我试图返回一个有2个表的视图,ordersorder_menu。我想要做的是在我的视图中显示客户基于order_id订购的订单。

这是orders的数据库表,这是order_menu的数据库表。

我试着在我的控制器中使用连接表,但它不起作用。这是我的控制器:

代码语言:javascript
复制
 public function show(Order $order)
 {
    $data = DB::table('order_menu')
        ->join('menus', 'menus.id', '=', 'order_menu.menu_id')
        ->join('orders', 'orders.id', '=', 'order_menu.order_id')
        ->select('orders.*', 'menus.name', 'order_menu.quantity')
        ->get();

    return view('admin.order.detail')->with([
        'order' => $order,
        'data' => $data,
    ]);
}

有没有解决这个问题的办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-16 17:16:59

您只需要在查询中为order id添加一个筛选器,我假设$order是模型的实例,并且具有订单数据

代码语言:javascript
复制
$data = DB::table('order_menu')
    ->join('menus', 'menus.id', '=', 'order_menu.menu_id')
    ->join('orders', 'orders.id', '=', 'order_menu.order_id')
    ->select('orders.*', 'menus.name', 'order_menu.quantity')
    ->where('orders.id', $order->id)
    ->get();

或者,如果您的模型中已经存在关系,则可以使用eloquent查询数据,如下所示

代码语言:javascript
复制
class Order extends Model
{
    public function menus()
    {
        return $this->belongsToMany(Menu::class, 'order_menu ', 'order_id', 'menu_id')->withPivot('quantity');
    }
}
class Menu extends Model
{
    public function orders()
    {
        return $this->belongsToMany(Order::class, 'order_menu ', 'menu_id','order_id');
    }
}

$data = Order::with('menus')->find($order->id);
票数 1
EN

Stack Overflow用户

发布于 2021-02-16 16:25:58

代码语言:javascript
复制
    public function show(Order $order)
{
    $data = DB::table('orders*')
        ->join('order_menu*', 'order_menu.id', '=', 'orders.id')
        ->groupBy('orders.id')
        ->get();

    return view('admin.order.detail')->with([
        'data' => $data,
    ]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66219776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档