【发布时间】:2020-05-01 00:32:00
【问题描述】:
我有一个要选择多个值的复选框。到目前为止,我得到了它的工作,数据正在插入到数据库中,但它是这种格式,
我的问题是我希望数据采用这种格式 ["value1","value2","value3"]。我正在使用 Laravel,这是我控制器中的代码:
public function store(NewsRequest $request) //ive removed most of the unnecessary code like the image upload and all to make this clean.
{
$news = new News($request->except('files', 'image'));
$serialize = implode(",", $news->majors); //this is my focus to change the format to ["value1","value2","value3"]
//ready data for insertion
$data = array(
"name" => $news->name,
"article_type_id" => $request->category,
"majors" => $serialize,
"content" => $news->content
);
DB::table('articles')->insert($data); //insert into database
}
目前我只能插入用逗号分隔的数据,但我希望按如下方式插入数据:
我尝试在互联网上四处寻找,但除了 JSON.stringify 之外我找不到任何可以提供帮助的东西。我希望在我的控制器本身中获得格式。我希望对此有所了解。提前谢谢你。
【问题讨论】:
-
只需添加引号作为内爆字符串的一部分 -
implode('","', $news->majors);并在生成的字符串的开头和结尾连接相同的引号。 -
试试这个:
'['.implode('","', $news->majors).']' -
你试过
json_encode($news->majors)吗? -
谢谢你们! '['.implode('","', $news->majors).']' 成功了! :)
-
不要这样做。数据库中的数据需要规范化,否则您将在以后遇到问题。使用relationships