Reputation: 91
I am using Select2 for create multiple data in database.
My Languages Field In Database:
English,French,Spanish
My Controller
public function store(UserCreateRequest $request)
{
$data = $request->all();
$data['languages'] = implode(',', $request['languages']);
User::create($data);
return redirect()->back()->with('message', 'Account Successfully Created');
}
But After Update The language field changes as follows
["English","French","Spanish"]
Update in controller
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$user->update($request->all());
return redirect()->back()->with('message', 'Account Successfully Updated');
}
I'm Using in_array() in edit Form For Showing Selected Data
Upvotes: 0
Views: 344
Reputation: 1167
You can create one methods, or rewrite you'r update methods
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$data = $request->all();
$data['languages'] = implode(',', $request['languages']);
$user->update($data);
return redirect()->back()->with('message', 'Account Successfully Updated');
}
But I think batter create relation user -> manyToMany -> language, table example
user {user_id, email, password}
user_language {user_language_id, user_id, language_id}
language {language_id, key, title}
For select get all from language.
For attach language to user use attach method. For get all language just call ->languages
on user. And etc. Sorry for my English I hope you understand me.
Upvotes: 3