使用 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',
];
模型自动进行数组之间的转换。
我有以下表格 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',
];
模型自动进行数组之间的转换。