在Laravel上使用select2将多个数据保存为外键

问题描述

我有一个表格,可以将一个主题分配给多个程序。程序已经保存在DB的另一个表中,我将它们称为表单,并使用select2多个选择来选择程序。

            <form action="{{ route('general_subject_store') }}" method="post">
                @csrf
                <div class="form-group">
                    <label>Subject Name <sup>*</sup></label>
                    <input placeholder="Subject Name" type="text" name="subjectName" id="subjectName" class="form-control" />
                </div>       
                <div class="form-group" style="padding:0px;">
                    <label>Programs(Class) <sup>*</sup></label>
                    <select data-placeholder="Select Classes" name="general_program_level_id[]" class="js-example-basic-multiple js-states form-control" multiple="multiple" style="width: 100%; height:100%;" required>
                        @foreach($gpls as $pl)
                            <option value="{{ $pl->id }}">{{ $pl->program_name }}</option>
                        @endforeach
                    </select>
                </div>
                <br>
                <input type="submit" value="Submit" class="btn btn-md btn-info">
            </form>

GeneralProgramLevel:

public function generalSubjects()
    {
        return $this->hasMany(GeneralSubject::class);
    }

GeneralSubject:

public function generalProgramLevel(){
        return $this->belongsTo('App\GeneralProgramLevel');
    }

控制器中的存储功能如下:

public function generalSubjectStore(Request $request){
        $subjectName = $request->get('subjectName');
        $program = $request->get('general_program_level_id');

        $subject = new GeneralSubject;
        $subject->subjectName = $subjectName;
        
        $subject->general_program_level_id = $program;
        
        dd($subject);
        $subject->save();

        Session::flash('success','Subject Added!');
        return redirect(route('general_subject'));
    }

迁移就像:

Schema::create('general_subjects',function (Blueprint $table) {
            $table->id();
            $table->string('subjectName');
            
            $table->unsignedBigInteger('general_program_level_id');
            $table->foreign('general_program_level_id')->references('id')->on('general_program_levels');

            $table->timestamps();

            $table->boolean('isDeleted')->default(false);
            $table->dateTime('deletedAt')->nullable();

        });

$ subject的转储属性为:

#attributes: array:2 [▼
    "subjectName" => "Mathmatics"
    "general_program_level_id" => array:2 [▼
      0 => "1"
      1 => "2"
    ]
  ]

我想将数据保存在数据库中而不要保存。请帮助我

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)