我正在尝试更新一些用户个人资料数据,如下所示:
要更新routes.php中的配置文件
Route::get('/profile/update/{id}', [
'as' => 'user.edit',
'uses' => 'UserController@edit'
]);
在我的UserController.php中
public function edit($id)
{
$user = User::findOrFail($id);
return view('user/edit', compact('user'));
}
我在edit.blade.php中的操作
{!! Form::model($user, ['action' => ['UserController@update', 'id' => $user->id], 'method' => 'PUT']) !!}
<div class="form-group">
{!! Form::label('name', 'Name') !!}
{!! Form::text('name', $user->name, [
'class' => 'form-control'
]) !!}
</div>
<div class="form-group">
{!! Form::label('email', 'E-mail') !!}
{!! Form::text('email', $user->email, [
'class' => 'form-control'
]) !!}
</div>
<div class="form-group">
{!! Form::label('phone', 'Phone') !!}
{!! Form::text('phone', $user->phone, [
'class' => 'form-control'
]) !!}
</div>
<p><button type="submit" class="btn btn-primary">Update Profile</button></p>
{!! Form::close() !!}
更新路线:
Route::put('/profile/update/{id}', [
'as' => 'user.update',
'uses' => 'UserController@update'
]);
以及UserController.php中的函数
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$user->update([
$request->input('name'),
$request->input('email'),
$request->input('phone')
]);
return Redirect::route('user.profile');
}
更新了我想要的字段(例如电话)后,它仅返回到配置文件屏幕,但未在数据库中更新它。我究竟做错了什么?非常感谢您的帮助。
我看不到您正在保存数据。试试这个:
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$user->name=$request->input('name');
$user->email=$request->input('email');
$user->phone=$request->input('phone');
$user->save();
return Redirect::route('user.profile');
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句