为了账号安全,请及时绑定邮箱和手机立即绑定

数据透视表关系 拉拉维尔

数据透视表关系 拉拉维尔

PHP
波斯汪 2022-08-05 18:51:31
我有以下关系:RAB拥有多种产品。产品属于多个瑞博但是这个产品也有多种货币属于ToOne RAB本身。它看起来像这样。在 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');}
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

创建货币模型并添加foreign_key:product_id

php 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


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信