私は機関、フォーム、form_institution(ピボットテーブル)とform_institution_attributesである4つのテーブルを持っています。ピボットテーブルのlaravel 1対多多く
機関表:
public function up() {
Schema::create('institutions', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 255);
$table->softDeletes();
$table->timestamps();
});
}
機関モデル:
public function forms() {
return $this->belongsToMany(Form::class, 'form_institution');
}
フォーム表:
public function up() {
Schema::create('forms', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 255);
$table->softDeletes();
$table->timestamps();
});
}
フォームモデル:ここでの移行である
public function institutions() {
return $this->belongsToMany(Institution::class, 'form_institution');
}
フォーム機関ピボットテーブル:
Schema::create('form_institution', function (Blueprint $table) {
$table->increments('id');
$table->integer('institution_id')->unsigned();
$table->integer('form_id')->unsigned();
$table->foreign('institution_id')->references('id')->on('institutions');
$table->foreign('form_id')->references('id')->on('forms');
});
すべてがここまでokです。しかし、私はここで
属性テーブルであり、それは、ピボットテーブルの間の関係(1対多)だもう一つのテーブルを追加する必要があるテーブルです:さて、私は施設テーブルや機関を呼び出すとき
Schema::create('form_institution_attributes', function (Blueprint $table) {
$table->increments('id');
$table->integer('form_institution_id')->unsigned();
$table->integer('field_name_id')->unsigned();
$table->integer('input_type_id')->unsigned();
$table->string('field_caption');
$table->softDeletes();
$table->timestamps();
$table->foreign('form_institution_id')->references('id')->on('form_institution');
});
- >フォームのパラメータ、私はピボットテーブルでform_institution_attribute(サブテーブル)を取得したい。しかし、私はこれを行うことができませんでしたか?
ピボットテーブルの下にテーブルを1対多の関係で追加するにはどうすればよいですか?
は、まず、あなたがあなたの最後の移行ファイル内のいくつかのミスを持っています。 'institution_form'テーブルが存在しないため、 'form_institution'テーブルを参照する必要があります。また、 'institution_form_id'の命名はform_institution_id 'でなければなりません。あなたがそれらを修正すれば、人々があなたを助けやすくなります。 –
@OrestisPalampougioukis私はそれを逃した、私はform_institutionとして編集しました。 – Nevermore
余分なテーブルを必要としない場合は、ピボットテーブルに直接属性を追加します。 '$ this-> belongsToMany(Form :: class、 'form_institution') - > withPivot( 'field_name_id'、 'input_type_id'、 'field_caption');などのようにして、最後にマイグレーションファイルに列を定義します。 [http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/](http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/) –