数据透视表关系 拉拉维尔

我有以下关系:

  1. RAB拥有多种产品。

  2. 产品属于多个瑞博

但是这个产品也有多种货币属于ToOne RAB本身。它看起来像这样。

http://img.mukewang.com/62ecf647000177a504190304.jpg

在 RAB 模型中:


  public function products()

    {

        return $this->belongsToMany('App\ModelKeuangan\ProductsModel', 'rab_products', 'rab_id', 'products_id');

    }

在产品型号中:


public function rab()

    {

        return $this->belongsToMany('App\ModelUnitKerja\Perencanaan\RabModel', 'rab_products', 'products_id', 'rab_id');

    }

rab_products是我的中间/联接表。


当为RAB同步产品数据时,它工作得很好。但是我无法获得如何制作雄辩的模型,用于将货币数据同步到rab和产品。


我还需要为货币制作模型吗?如果是,我如何定义它?


我的计划是像这样制作一个枢轴,但是我可以在数据透视表内建立关系吗?


class RabProducts extends Pivot {

    //relation function to currency

}

并更改我的产品型号,如下所示:


   public function rab(){

       return $this->belongsToMany('App\ModelUnitKerja\Perencanaan\RabModel')->using('App\RabProducts');

}


波斯汪
浏览 96回答 1
1回答

慕哥6287543

创建货币模型并添加foreign_key:product_idphp artisan make:model Currency在产品和货币之间构建一对多,您需要在表中添加。product_idcurrencies在您的货币模型中:    public function product() {      return $this->belongsTo('App\Product', 'product_id');    }在您的产品模型中:    public function currencies()    {        return $this->hasMany(\App\Currency::class, 'product_id', 'id');    }所以你可以这样称呼它:RAB::with(['products' => function($query) {    $query->with('currencies');}])->get();不幸的是,foreign_key和数据透视表中,您无法直接创建货币。productsrabshasmanythrough您可以按产品调用货币。或者,您可以创建一个透视模型,然后使用 。hasmanythrough
打开App,查看更多内容
随时随地看视频慕课网APP