как получить все отношения и подчиненные отношения модели в Laravel "с" - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь скопировать экземпляр модели со всеми ее взаимосвязями и подобластями:

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 "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...