Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 型号:独立或;卷影复制";-我的关系是最好的吗?_Laravel_Eloquent - Fatal编程技术网

Laravel 型号:独立或;卷影复制";-我的关系是最好的吗?

Laravel 型号:独立或;卷影复制";-我的关系是最好的吗?,laravel,eloquent,Laravel,Eloquent,我想听听你对我目前问题的看法 我得到了一个名为Product的模型。这个产品属于一个类别,有一些信息,如标签、属性等 现在,像发票或订单这样的其他模型可以利用位置。每个职位都与一个产品相关 重要的是:此职位绑定产品是原始产品-模型及其所有关系的副本(这一点非常重要:如果原始产品发生更改,则链接到职位的产品不得更改) 因此: 产品:描述产品(“独立”) 职位:描述附加在报价、订单或发票上的职位。一个职位有一个相关的产品,即原始产品的副本。此副本可能不会显示在产品的索引页上 现在我想找出处理这个

我想听听你对我目前问题的看法

我得到了一个名为
Product
的模型。这个产品属于一个类别,有一些信息,如标签、属性等

现在,像
发票
订单
这样的其他模型可以利用
位置
。每个职位都与一个产品相关

重要的是:此职位绑定产品是原始
产品
-模型及其所有关系的副本(这一点非常重要:如果原始产品发生更改,则链接到职位的产品不得更改)

因此:

  • 产品
    :描述产品(“独立”)
  • 职位
    :描述附加在报价、订单或发票上的职位。一个职位有一个相关的产品,即原始产品的副本。此副本可能不会显示在产品的索引页上
现在我想找出处理这个问题的最佳方法

目前我正在这样做:

<?php

namespace App;

use App\Traits\FieldTrait;

/**
 * Class Product
 *
 * @package App
 */
class Product extends Model
{
    /**
     * @param $query
     *
     * @return mixed
     */
    public function scopeWithoutShadowCopies($query): mixed
    {
        return $query->where('position_id', null);
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function position(): BelongsTo
    {
        return $this->belongsTo(Position::class);
    }

    /**
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function category()
    {
        return $this->belongsTo(Category::class);
    }
}