【问题标题】:laravel reverse polymorph issuelaravel 反向多态问题
【发布时间】:2015-08-25 12:14:00
【问题描述】:

在 laravel 中,我有表 cart、cart_products、tests、packages。 - 我需要使用 laravel ORM 关联这些表。在 cart_products 表中,有时会有测试,有时会有包。那么我应该如何关联它们呢? 在购物车模型相关的像

public function products(){
        return $this->hasMany('HbDiagnostic\Models\CartProduct');
    }

并获取类似的数据..

"products": [
        {
            "id": "1",
            "cart_id": "1",
            "productable_id": "2",
            "productable_type": "test",
            "quantity": "1",
            "created_at": "2015-06-10 07:23:59",
            "updated_at": "2015-06-10 07:23:59"
        },
        {
            "id": "2",
            "cart_id": "1",
            "productable_id": "1",
            "productable_type": "package",
            "quantity": "1",
            "created_at": "2015-06-10 07:23:59",
            "updated_at": "2015-06-10 07:23:59"
        }];

现在我还需要每个产品的测试详细信息和包装详细信息。 请帮助我,我尝试了几种方法,但没有正确。

谢谢, 桑吉特

【问题讨论】:

    标签: php laravel polymorphism laravel-5


    【解决方案1】:

    我也是 Laravel 的初学者,但我了解 Eloquent Like this

    1:N = hasMany

    N:1 = 属于

    N:N = BelongToMany

    所以你有 4 个表 Cart,cart_product, test,package

    如果我理解这些表,它应该是 4 个基表和 1 个复合表(Cart_product)

    Cart、product、test、package 和 Cart_Product(复合表)

    关于关系见下面这个链接

    http://daylerees.com/codebright/eloquent-relationships

    http://laravel.com/docs/4.2/eloquent

    【讨论】:

      【解决方案2】:

      @Chanom,感谢您的回答,但我的查询与标签测试和带有 cart_product 表的包装有关,最后它对我有用... 关系就像:

      Model CartProduct:
      public function productable(){
              return $this->morphTo();
          }
      
      Model Test :
      public function cart_product(){
              return $this->morphMany('HbDiagnostic\Models\CartProduct', 'productable');
      
      Model Package :
          public function cart_product(){
                  return $this->morphMany('HbDiagnostic\Models\CartProduct', 'productable');
      
      And finally i am retrieving results like 
      $cartProduct=CartProduct::Query()->where('cart_id',$cart->id);
                  return $cartProduct->with('productable')->get();
          }
      

      这些链接对我帮助很大.. Laravel - Eager Loading Polymorphic Relation's Related ModelsLaravel: Returning the namespaced owner of a polymorphic relation

      【讨论】:

        猜你喜欢
        • 2018-12-20
        • 2019-01-07
        • 1970-01-01
        • 2017-02-25
        • 2015-09-14
        • 2016-11-30
        • 2014-10-27
        • 1970-01-01
        相关资源
        最近更新 更多