簡體   English   中英

無法在Laravel中的模型中顯示數據

[英]Can't display data in view from model in Laravel

在我的項目中,我有訂單,其中有許多產品和客戶有很多訂單。 我很困惑,因為我希望獲得某個客戶擁有的所有訂單以及每個訂單的產品。 我把某些東西搞砸了,我不確定我是否正確地建立了自己的關系。 這是我的產品表:

在此輸入圖像描述

這是我的客戶表:

在此輸入圖像描述

這是我的訂單表:

在此輸入圖像描述

這是我的模特:

產品:

class Product extends Model
{
    public function orders()
    {
         return $this->belongsToMany('App\Order');
    }
}

訂購:

class Order extends Model
{
    public function products()
    {
        return $this->hasMany('App\Product', 'id');
    }

    public function customer()
    {
        return $this->belongsTo('App\Customer');
    }
}

顧客:

class Customer extends Model
{
    public function orders()
    {
        return $this->hasMany('App\Order', 'id');
    }
}

我通過App\\Customer::all()從我的數據庫中獲取所有客戶,並在customers.blade.php中傳遞數據。

<h1>Customers:</h1>
    @foreach($customers as $customer)
        <h3>{{$customer->name}}</h3>
        @foreach($customer->orders as $order)
        <p>Order ID: {{$order->id}}</p>
            @foreach($order->products as $product)
            <p>Product title: {{$product->title}}</p>
            @endforeach
        @endforeach
        <hr>
    @endforeach

這是輸出:

在此輸入圖像描述

如果有人可以解釋為什么它不輸出所有內容並提供一些建議,如果這是關系的方式,我會非常感激。

您的產品應屬於訂單,而不是具有多對多關系。

class Product extends Model
{
    public function orders()
    {
         return $this->belongsTo('App\Order');
    }
}

我找到了一個解決方案,為產品和訂單制作名為products_orders的數據透視表,其中包含product_id和order_id,並在產品和訂單之間建立多對多的關系。 這是因為訂單可能有多個產品,而產品可能存在多個訂單。 我的數據透視表products_orders:

在此輸入圖像描述

class Product extends Model
{
    public function orders()
    {
         return $this->belongsToMany('App\Order');
    }
}

class Order extends Model
{
    public function products()
    {
        return $this->belongsToMany('App\Product', 'products_orders');
    }

    public function customer()
    {
        return $this->belongsTo('App\Customer');
    }
}

我為客戶和訂單建立了一對多關系(訂單表中的customer_id),現在一切正常。

class Customer extends Model
{
    public function orders()
    {
        return $this->hasMany('App\Order');
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM