我正在使用Laravel 5.4,我遇到一个问题,当我保存一组复选框时,如果我这样保存它只会保存其中一个:
<label class="checkbox-inline"> {!! Form::checkbox('languages[name]', 'English') !!} English</label><br/>
<label class="checkbox-inline"> {!! Form::checkbox('languages[name]', 'French') !!} French</label><br/>
<label class="checkbox-inline"> {!! Form::checkbox('languages[name]', 'Spanish') !!} Spanish</label><br/>
但它给了我一个可行的格式,因为我可以在名字上运行搜索。这里的输出只是我检查过的第一个,但格式如下:
{"name": "English"}
如果我取出[]。
中的数组字段名称 <label class="checkbox-inline"> {!! Form::checkbox('languages[]', 'English') !!} English</label><br/>
<label class="checkbox-inline"> {!! Form::checkbox('languages[]', 'French') !!} French</label><br/>
<label class="checkbox-inline"> {!! Form::checkbox('languages[]', 'Spanish') !!} Spanish</label><br/>
它会保存所有值,但它并没有为我的搜索等提供可行的格式。这里的输出是:
["English", "French"]
我在Laravel中的功能就像这样
public function store(Request $request)
{
$data = $request;
dd($data['languages']);
$resource = Resource::create([
'user_id' => auth()->id(),
'status_id' => $status,
'title' => $data['title'],
'languages' => $data['languages'],
]);
return redirect($resource->path());
}
MySQL中名为“languages”的列是JSON类型。
理想情况下,我希望得到类似于{“name”:“English”}的内容,但不仅仅是保存为一个项目,而是保存所有项目。
有什么建议吗?
答案 0 :(得分:0)
您可以执行以下操作:
<label class="checkbox-inline"> {!! Form::checkbox('languages[][name]', 'English') !!} English</label><br/>
<label class="checkbox-inline"> {!! Form::checkbox('languages[][name]', 'French') !!} French</label><br/>
<label class="checkbox-inline"> {!! Form::checkbox('languages[][name]', 'Spanish') !!} Spanish</label><br/>
它会给你:
"languages" => array [
0 => array: [
"name" => "English"
],
1 => array: [
"name" => "French"
],
2 => array: [
"name" => "Spanish"
]
]