如何在Laravel中“与”一起获得模型的所有关系和子关系

时间:2020-02-03 15:41:29

标签: php laravel eloquent

我正在尝试复制一个模型实例,其所有关系和子关系如下:

public function clonar($syllabusid){

        $micro = Microdiseno::with('resultados.evidencias')->find($syllabusid);

        $new_syllabus = $micro->replicate();
        $new_syllabus->push();

        foreach($micro->getRelations() as $relation => $items){
            foreach($items as $item){
                unset($item->id);
                $new_syllabus->{$relation}()->create($item->toArray());
            }
        }

        return 'syllabus clonado';
    }

这是我的第一个模型“ Microdiseno”:

class Microdiseno extends Model
    {

        protected $fillable = ['user_id', 'materia_id', 'grupo', 'estado'];

        public function resultados(){
            return $this->hasMany(Resultado::class);
        }
     }

这是我的第二个模型“ Resultado”:

class Resultado extends Model
{
    protected $table = 'resultados';

    protected $fillable = ['descriptorresultado', 'microdiseno_id'];

    public function microdisenos(){
        return $this->belongsTo('App\Microdiseno', 'microdiseno_id');
    }

    public function evidencias(){
        return $this->hasMany(Evidencia::class);
    }

}

这是我的第三个模型:

class Evidencia extends Model
{
    protected $table = 'evidencias';

    protected $fillable = ['descriptorevidencia', 'resultado_id'];

    public function resultados(){
        return $this->belongsTo('App\Resultado', 'resultado_id');
    }

}

我的问题是它仅复制但具有第一个关系“ Resultado”

结果与另一个“ Evidencia”模型有关 并且不会使用“ Resultado”和“ Evidencia”创建“ Microdiseno”的新实例

0 个答案:

没有答案