使用 Laravel8 将单列中的标签输入值存储到数据库中

Store tag input values in a single column into database using Laravel8

我有以下表格 tag input

<form id="filialeform" action="filiales" enctype="multipart/form-data">
  {{ csrf_field() }}
  <input type="hidden" id="id_hidden" name="id" />
  <div class="form-group">
    <label>Filiale</label>
    <input type="text" class="form-control" name="filiale" id="filiale" placeholder="Filiale">
  </div>
  <div class="form-group">
    <label>Adm_Email</label>
    <input data-role="tagsinput" type="text" name="adm_email" id="adm_email">
  </div>
  <div class="modal-footer">

    <input type="hidden" name="action" id="action" />
    <input type="hidden" name="hidden_id" id="hidden_id" />
    <input type="submit" name="action_button" id="action_button" class="btn btn-warning" value="Enregistrer" />
    <span id="form_result"></span>
  </div>
</form>

我有以下数据库 table :

 public function up()
    {
        Schema::create('filiales', function (Blueprint $table) {
                
            $table->increments('id_filiale');
            $table->string('filiale',80);
            $table->string('adm_email',500);
            $table->integer('actif');
            $table->timestamps();
        });
    }

我正在尝试将数据存储到数据库中,以便在输入标签中输入的值存储在 table 的 adm_email 列中,并用 gamma 分隔。

所以我正在尝试以下代码:

 public function store(Request $request)
    {

        $input = $request->all();
        $tags = explode(",", $request->adm_email);
        $form_data = array(
             'filiale'     =>  $request->filiale,
             'adm_email'    =>   $tags
                        
                    );

         Filiale::create($form_data);

     return response()->json(['success' => 'Data Added successfully.']);
    }

但我收到以下错误:

message: "Array to string conversion"

我不知道我怎么能意识到这一点。如果您有任何想法,请提供帮助。

在这一行中:

$tags = explode(",", $request->adm_email);

explode 函数接受一个字符串(在本例中为 $request->adm_email)并将其转换为数组,因此当您尝试存储它时:

'adm_email'    =>   $tags

它失败了,因为你不能在数据库中存储数组。相反,您可以使用 :

将其转换为 json
'adm_email'    =>   json_encode($tags)

然后使用 :

从 json 转换它
json_decode()

当您从数据库中检索它并希望对其进行处理时。

转到 Model/Filiale.php 并添加:

protected $casts = [
    'adm_email' => 'array',
];

模型自动进行数组之间的转换。