Я пытаюсь скопировать экземпляр модели со всеми ее взаимосвязями и подобластями:
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 ", и она не создает новый экземпляр" Microdiseno "с" Resultado "и" Evidencia "