0

このテーブル間の関係を作成する必要があります。

データベース スキーマ

ご覧のとおり、4 つのテーブルを関連付けて 4 次リレーションシップを作成する必要があります。データベース モデルが正常であると仮定すると、雄弁な関係をどのように行うことができますか?

モデルの件名で

public function curs_academic(){ // as academic year
        return $this->belongsToMany('App\Curs_academic', 'assignatura_alumne_curs_professor', 'id_assignatura', 'id_curs_academic');
    }
    public function user(){ //as teacher
        return $this->belongsToMany('App\User', 'assignatura_alumne_curs_professor', 'id_assignatura', 'id_usuari');
    }

三項式すら出来ないので生徒が行方不明..

保存するときは次のようにします。

public function update(Request $request, $id)
    {
        $this->validate($request,[
            'nom'=> 'required',
        ]);
        $assignatura = Assignatura::find($id);
        $assignatura->nom = $request->input('nom');
        $assignatura->save();
        $assignatura->estudi()->associate($request->estudis);
        $assignatura->curs_academic()->sync($request->curs_academic,false);
        $assignatura->user()->sync($request->professors,false);
        $assignatura->save();
        return redirect('/assignatures')->with('success','Assignatura modificada');

    }

pd: db モデルは変更される可能性があります。4 次関係を元に戻そうとしましたが、それがなければ (私にとっては) 意味がありません。

フォーム入力:

<div class="form-group col-lg-6">
                      {!! Form::label('curs_academic', 'Curs academic') !!}
                      {!! Form::select('curs_academic[]', $cursos_academics, $assignatura->curs_academic()->pluck('curs_academics.id'), ['id' => 'curs_academic','multiple' => 'multiple', 'class' => 'selectpicker', 'data-live-search' => 'true']) !!}
                    </div>
                    <div class="form-group col-lg-6">
                      {!! Form::label('professor', 'Professor') !!}
                      {!! Form::select('professors[]', $professors, $assignatura->user()->pluck('users.id'), ['id' => 'professors','multiple' => 'multiple', 'class' => 'selectpicker', 'data-live-search' => 'true']) !!}
                    </div>

目標表:

件名-学生--教師。数学 - イヴァン - 2019 - デビッド. // 数学 - ivan - 2018 - david.

4

1 に答える 1