首页 > 解决方案 > 输入数组到数据库

问题描述

我对此感到困惑。我尝试根据我的输入类型输入具有不同键和值的数组,并将其存储到我的数据库表的一列中。

这是我的输入类型。 输入

<div class="col-sm-6">
                           <div class="input-group control-group" >
                             <input type="text" name="kel_sekolah[]" class="form-control n1" placeholder="Kelurahan...">
                             <div class="input-group-btn"> 
                               <button class="btn btn-success btn-sm z2" type="button" style="padding:10px;"><i class="fa fa-plus" aria-hidden="true"></i> Add</button>
                             </div>
                           </div>
                         </div>
                         <div class="col-sm-6">
                           <div class="input-group control-group" >
                             <input type="text" name="rt_sekolah[]" class="form-control n1" placeholder="Rt...">
                             <div class="input-group-btn"> 
                               <button class="btn btn-success btn-sm z1" type="button" style="padding:10px;"><i class="fa fa-plus" aria-hidden="true"></i> Add</button>
                             </div>
                           </div>
                         </div>
                       </div>

<script>
 $(document).on('click','.z1', function(){
                          z1();
                        });
                        function z1(){
                          var kel_sekolah = '<div class="form-group p-3"><div class="row"><div class="col-sm-6"></div><div class="col-sm-6"><div class="input-group control-group" ><input type="text" id="kel_sekolah[]" name="rt_sekolah[]" class="form-control n1" placeholder="Rt..."><span id="kel_sekolahError" class="alert-message"></span><div class="input-group-btn"> <button class="btn btn-sm btn-danger remove1" type="button" style="padding:10px;"><i class="fa fa-minus" aria-hidden="true"></i> Remove</button></div></div></div></div>';
                          $('.myform1').append(kel_sekolah);
                        };
                        
                        $(document).on('click','.z2', function(){
                          z2();
                        });
                        function z2(){
                          var kel_sekolah = '<div class="form-group p-3"><div class="row"><div class="col-sm-6"><div class="input-group control-group" ><input type="text" id="kel_sekolah" name="kel_sekolah[]" class="form-control n1" placeholder="Kelurahan..."><span id="kel_sekolahError" class="alert-message"></span><div class="input-group-btn"><button class="btn btn-sm btn-success z2" type="button" style="padding:10px;"><i class="fa fa-plus" aria-hidden="true"></i> Add</button></div></div></div><div class="col-sm-6"><div class="input-group control-group" ><input type="text" id="kel_sekolah" name="rt[]" class="form-control n1" placeholder="Rt..."><span id="kel_sekolahError" class="alert-message"></span><div class="input-group-btn"> <button class="btn btn-sm btn-success z1" type="button" style="padding:10px;"><i class="fa fa-plus" aria-hidden="true"></i> Add</button></div></div><button class="btn btn-sm btn-danger remove3" type="button" style="padding:10px;"><i class="fa fa-minus" aria-hidden="true"></i> Remove</button></div></div></div>';
                          $('.myform1').append(kel_sekolah);
                        };

                        $(document).on('click','.remove2', function(){
                          $(this).parent().parent().parent().parent().remove();
                        });

                        $(document).on('click','.remove3', function(){
                          $(this).parent().parent().parent().parent().remove();
                        });
</script>

这是我的控制器

  public function daftarsds(Request $request)
    {  
        $array = [];
        foreach ($request->kel_sekolah as $key) {
            foreach ($request->rt_sekolah as $value) {
            $array[] = [$key => $value];
            }
        }
        
        
        ListSekolahSd::Create([
            'nama_sekolah' => $request->nama_sekolah,
            'kuota_sekolah' => $request->kuota_sekolah,
            'kel_sekolah' => $array,
          ]);
            
    
        return redirect()->route('/admin/sd');
    }

这是我的模型

class ListSekolahSd extends Model
{
    use HasFactory;
    protected $guarded = [];
    protected $table = 'list_sekolah_sds';
    protected $primaryKey = 'id';
    protected $fillable = [
        'nama_sekolah', 
        'kuota_sekolah',
        'rt_sekolah',
        'kel_sekolah',
    ];
    // protected $casts = [
    //     'kel_sekolah' => 'array',
    // ];

}

如何将这 2 个输入添加到我的列中?我希望列值是这样的: {"key1":["value1","value2"],"key2":["value1","value2"]}

但我得到的是: [{"key1":"value1"},{"key1":"value2"},{"key2":"value1"},{"key2":"value2"}]

有人可以帮我吗?

标签: mysqlarraysjsonlaravel

解决方案


推荐阅读