【问题标题】:Laravel 8 Does Not Update Information From DatabaseLaravel 8 不更新数据库中的信息
【发布时间】:2021-05-25 21:56:43
【问题描述】:

我想从数据库中更新我的用户信息。我有这个形式:

<form method="POST" action="{{ route('profile.update' , ['profile' => Auth::user()->id]) }}" class="form">
    <div class="form-group BSinaBold ">
        <input id="location" type="text" class="form-control" name="location" value="{{ Auth::user()->location }}" required autocomplete="location" autofocus>
    </div> 
</form>

在 Controller 中,我将其放入方法 update

public function update(Request $request, $profile)
    {
        $validate_data = Validator::make(request()->all(),[
           'location' => 'required'
        ])->validated();

        $user = User::findOrFail($profile);

        $user->update([
            'location' => $validate_data['location']
        ]);

        return back();
    }

但现在的问题是,它没有更新location。我的意思是没有出现错误,根本没有更新!

那么这里出了什么问题,我该如何解决这个问题?

非常感谢你们的任何想法或建议,

谢谢。

【问题讨论】:

  • 您查看过您的用户模型的易错字段吗?您不能使用 update() 将忽略不在该列表中的字段。
  • 你尝试过什么调试问题?
  • 顺便提一下,我认为@NMahurin 评论中有错字,他们的意思是fillable,这是针对“大规模分配”laravel.com/docs/8.x/eloquent#mass-assignment 的一种措施

标签: php laravel laravel-8


【解决方案1】:

您可以使用Illuminate\Http\Request 对象提供的validate 方法来代替手动创建验证器:

$validated = $request->validate([ 'location' => 'required' ]);

Reference


然后你可以批量更新记录(注意你不需要检索记录来更新它,只需更新它):

User::where('id', $profile)
      ->update($validated);
  

Reference


但是,在使用 update 方法之前,您需要在模型类上指定 fillableguarded 属性。

class User extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        // other fields here...,
        'location',
    ];
}

Reference

【讨论】:

    【解决方案2】:

    根据提供的代码,您正在从 $validate_data 更新数据,更新您的代码以使用请求数据

    $user = User::find($profile);
    
    $user->location = request('location');
    
    $user->save();
    

    【讨论】:

      猜你喜欢
      • 2021-04-27
      • 2021-07-07
      • 2022-09-23
      • 2014-12-17
      • 2021-06-03
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      相关资源
      最近更新 更多