How to store multi select values in Laravel 5.2

二次信任 提交于 2019-12-18 12:34:18

问题


I have a form which stores News.

Here I am using Multiselect and I want to save all the selected option in the table as say Users,staff,cinemahall as a string.

My controller function to store values is

 public function store(Request $request)
{

    $input=$request->all();

    General_news::create($input);
    return redirect()->back();
}

This function store the all submitted fields but for multiselect it stores only last option i.e cinemahall

When form is submitted all selected options are displayed but it's not saving in database table properly.

help me to solve this issue.


回答1:


Make sure you set the name attribute to an array

<select multiple="multiple" name="news[]" id="news">

To store it as string separated by commas

$news = $request->input('news');
$news = implode(',', $news);

You have a string which will look like Users,staff,cinemahall. Now, instead to retrieve all input, you may need to retrieve it one by one, since you need to mutate the news value. Additionally, you can also use except() method to exclude news from mass getting all value.

$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();



回答2:


Thanks @Chay22

you could also use Mutators and Accessor https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor

public function setFooAttribute($value)
{
    $this->attributes['foo'] = implode(',',$value);
}

public function getFooAttribute($value)
{
    return explode(',',$value);
}



回答3:


If you are using a multiselect, that probably means that you need a many to many relationship and a pivot table. Kind of like how posts can belong to many tags and tags can belong to many posts.

In your case this would probably be between news and the news_types tables.



来源:https://stackoverflow.com/questions/38288899/how-to-store-multi-select-values-in-laravel-5-2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!