如何在laravel中将多选值插入数据库?

时间:2017-07-07 06:11:38

标签: php mysql laravel

查看代码:

      <div class="col-sm-10">
              <select multiple="multiple" class="form-control"    
      name="serial-lists[]" id="serial-lists[]" required>
                <option value="1.0.0.1">1.0.0.1</option>
                <option value="1.0.0.2">1.0.0.2</option>
                <option value="1.0.0.3">1.0.0.3</option>
                <option value="1.0.0.4">1.0.0.3</option>
                <option value="1.0.0.5">1.0.0.3</option>
                <option value="1.0.0.6">1.0.0.4</option>
                <option value="1.0.0.7">1.0.0.5</option>
              </select>
            </div>

这是我的观看代码。在这里,我选择了多个值,需要插入数据库。

控制器代码:

     $versions = new supportedversionsModel;
     $versions->supportedversions = implode(',', $request-
     >input('serial-lists'));
     $versions->build()->associate($temp);
     $versions->save();

这是我的控制器代码。这里应该在插入时将所选值保存到db.BUt中,它会抛出错误.ie。,数组到插入时的字符串转换

SupportedversionsModel代码:

class supportedversionsModel extends Model
{

 protected $table="HaghwaySupports";
 protected $connections="mysql";

  public function build(){

        return $this->belongsToMany(debModel::class);
    }
}

受支持的转换表的迁移代码:

class HaghwaySupversiosn extends Migration
{

    public function up()
    {
        Schema::create('HaghwaySupports', function($table) {
            $table->engine='InnoDB';
            $table->increments('id');
            $table->integer('build_id')->unsigned();
            $table->string('supportedversions');
            $table->foreign('build_id')->references('buildid')-
            >on('MainHaghway');
            $table->timestamps();

        });
    }

    public function down()
    {
        Schema::dropIfExists('HaghwaySupports');
    }
}

1 个答案:

答案 0 :(得分:1)

将其另存为JSON字符串。

 $versions = new supportedversionsModel;
 $versions->supportedversions =  json_encode(implode(',', $request->input('serial-lists')));     
 $versions->build()->associate($temp);
 $versions->save();

检索时,

$versions->serial_list = json_decode($serial_list, true);

通过这个了解更多信息:

https://laravel.com/docs/5.4/eloquent-serialization