【发布时间】: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 的一种措施