首页  >  问答  >  正文

Laravel HasManyThrough 或 BelongsToMany 在我的情况下不起作用。是数据库结构问题吗?

<p>我有 3 个表:</p> <pre class="brush:php;toolbar:false;">products table - id - title - etc.</pre> <pre class="brush:php;toolbar:false;">purchases table - id - code - etc.</pre> <pre class="brush:php;toolbar:false;">purchase_products table - id - purchase_id - product_id - qty - etc.</pre> <p>我的目标是检索单个产品的购买情况。以下关系对我不起作用。使用 <code>belongsToMany</code> 尝试了不同的方法,也不起作用。</p> <pre class="brush:php;toolbar:false;">$this->hasManyThrough( Purchase::class, PurchaseProduct::class, 'purchase_id', 'product_id', 'id', 'id' );</pre> <p>通过一种简单的方式,我可以通过product_id获取所有购买的产品,然后检索购买的商品,但是我需要一个关系才能使其工作,因为 Laravel nova 因为我想在资源上显示购买的商品。</p>
P粉505450505P粉505450505383 天前403

全部回复(1)我来回复

  • P粉970736384

    P粉9707363842023-09-06 00:59:30

    产品型号

    class Product {
        public function purchases()
        {
             return $this->belongsToMany(Purchase::class, 'purchase_products', 'product_id', 'purchase_id');
        }
    }

    购买模式

    class Purchase {
        public function products()
        {
             return $this->belongsToMany(Product::class, 'purchase_products', 'purchase_id', 'product_id');
        }
    }

    回复
    0
  • 取消回复