Php 如何在Laravel 5.2中存储多选值
我有一个储存新闻的表格 在这里,我使用Multiselect,并希望将表中所有选定的选项保存为字符串,例如Users、staff、cinemahall 我的控制器存储值的功能是Php 如何在Laravel 5.2中存储多选值,php,laravel,laravel-5.2,multi-select,Php,Laravel,Laravel 5.2,Multi Select,我有一个储存新闻的表格 在这里,我使用Multiselect,并希望将表中所有选定的选项保存为字符串,例如Users、staff、cinemahall 我的控制器存储值的功能是 public function store(Request $request) { $input=$request->all(); General_news::create($input); return redirect()->back(); } 此函数存储所有提交的字段,
public function store(Request $request)
{
$input=$request->all();
General_news::create($input);
return redirect()->back();
}
此函数存储所有提交的字段,但对于multiselect,它只存储最后一个选项,即cinemahall
提交表单时,将显示所有选定选项,但未正确保存在数据库表中
请帮助我解决此问题。请确保将“名称”属性设置为数组
<select multiple="multiple" name="news[]" id="news">
您有一个字符串,看起来像用户、工作人员、电影院
。现在,要检索所有输入,您可能需要逐个检索,因为您需要修改新闻
值。此外,您还可以使用except()
方法将news
从获取所有值的批量中排除
$news = $request->input('news');
$news = implode(',', $news);
$input = $request->except('news');
//Assign the "mutated" news value to $input
$input['news'] = $news;
General_news::create($input);
return redirect()->back();
如果您使用的是multiselect,这可能意味着您需要一个多对多关系和透视表。有点像
帖子
可以属于许多标签
,标签
可以属于许多帖子
在您的情况下,这可能介于新闻
和新闻类型
表格之间。谢谢@Chay22
您还可以使用变异器和访问器
您能用html标记更新您的问题吗?谢谢您的回答,但我想将其作为字符串存储在单个表中,而不是维护多个表及其关系。。。。我知道我的方法不适合数据库的规范化…谢谢你的帮助,还有一个查询,你能帮我做相反的事情吗?现在在编辑时,我想从表中提取字符串并将其显示为multiselect。要将字符串转换为数组,你可以使用
explode(',',$string)代码>
$news = $request->input('news');
$news = implode(',', $news);
$input = $request->except('news');
//Assign the "mutated" news value to $input
$input['news'] = $news;
General_news::create($input);
return redirect()->back();
public function setFooAttribute($value)
{
$this->attributes['foo'] = implode(',',$value);
}
public function getFooAttribute($value)
{
return explode(',',$value);
}