首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel :在更新请求后更改数据

Laravel :在更新请求后更改数据
EN

Stack Overflow用户
提问于 2020-08-03 17:23:40
回答 1查看 45关注 0票数 0

我使用Select2在数据库中创建多个数据。

数据库中的我的语言字段:

代码语言:javascript
复制
English,French,Spanish

我的控制器

代码语言:javascript
复制
public function store(UserCreateRequest $request)
  {

    $data = $request->all();
    $data['languages'] = implode(',', $request['languages']);
    User::create($data);
    return redirect()->back()->with('message', 'Account Successfully Created');
  }

但在更新后,语言字段会发生如下更改

代码语言:javascript
复制
["English","French","Spanish"]

在控制器中更新

代码语言:javascript
复制
    public function update(Request $request, $id)
{
    $user = User::findOrFail($id);
    $user->update($request->all());
    return redirect()->back()->with('message', 'Account Successfully Updated');

}

我在编辑表单中使用in_array()来显示选定的数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 17:36:42

你可以创建一个方法,或者重写你的更新方法

代码语言:javascript
复制
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');

}

但我认为batter relation -> manyToMany -> language,表例

代码语言:javascript
复制
user {user_id, email, password}
user_language {user_language_id, user_id, language_id}
language {language_id, key, title}

对于选择get all from language。对于将语言附加到用户,请使用attach方法。对于get all语言,只需在用户上调用->languages即可。等等。很抱歉我的英语,希望你能理解我。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63226832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档