如何通过Laravel 5.2一次更新特定列的数据?
How to update specific column data at a time by Laravel 5.2?
我有一个 users
table,其中我有一个名为 rank_id
的 column
。现在我想一次将所有用户 rank_id
更新为 2
,其中 rank_id = 6
(单击一个按钮)。我怎样才能做到这一点?到目前为止我已经尝试过:
路线:
Route::post('/test/rankup2', array('as' => 'user.rank2.post', 'uses' => 'TestController@RankUpgradeTwo'));
TestController.php:
function RankUpgradeTwo(Request $request)
{
$memberAll = User::where('rank_id','=',6)->firstOrFail();
//dd($memberAll);
$memberAll->rank_id = '2';
$memberAll->save();
return Redirect::to('user/test')->with('message', 'Successfully Ugraded into Rank 2');
}
testScript.blade.php:
<form method="POST"
action="{{ route('user.rank2.post') }}"
class="form-horizontal stdform"
autocomplete="off"
enctype="multipart/form-data"
id="edit-form"
role="form"
{{--v-on:submit="submitChange" --}}
novalidate />
{{ csrf_field() }}
<div class="control-group action">
<button type="submit" name="submit" value="submit" id="submit" class="btn btn-blue btn-left">
Rank Up 2
</button>
</div>
{{ Form::close() }}
这向我显示成功消息,但我没有在数据库中看到任何更新。提前致谢。
你可以试试Eloquent Update
User::where('rank_id','=',6)->update(['rank_id' => 2]);
或
由于 firstOrFail
只会从数据库中获取第一条记录,因此您将无法更新所有记录,但还有另一种解决方法 e.x
$memberAll = User::where('rank_id','=',6)->get();
foreach($memberAll as $member) {
$member->rank_id = 2;
$member->save();
}
我有一个 users
table,其中我有一个名为 rank_id
的 column
。现在我想一次将所有用户 rank_id
更新为 2
,其中 rank_id = 6
(单击一个按钮)。我怎样才能做到这一点?到目前为止我已经尝试过:
路线:
Route::post('/test/rankup2', array('as' => 'user.rank2.post', 'uses' => 'TestController@RankUpgradeTwo'));
TestController.php:
function RankUpgradeTwo(Request $request)
{
$memberAll = User::where('rank_id','=',6)->firstOrFail();
//dd($memberAll);
$memberAll->rank_id = '2';
$memberAll->save();
return Redirect::to('user/test')->with('message', 'Successfully Ugraded into Rank 2');
}
testScript.blade.php:
<form method="POST"
action="{{ route('user.rank2.post') }}"
class="form-horizontal stdform"
autocomplete="off"
enctype="multipart/form-data"
id="edit-form"
role="form"
{{--v-on:submit="submitChange" --}}
novalidate />
{{ csrf_field() }}
<div class="control-group action">
<button type="submit" name="submit" value="submit" id="submit" class="btn btn-blue btn-left">
Rank Up 2
</button>
</div>
{{ Form::close() }}
这向我显示成功消息,但我没有在数据库中看到任何更新。提前致谢。
你可以试试Eloquent Update
User::where('rank_id','=',6)->update(['rank_id' => 2]);
或
由于 firstOrFail
只会从数据库中获取第一条记录,因此您将无法更新所有记录,但还有另一种解决方法 e.x
$memberAll = User::where('rank_id','=',6)->get();
foreach($memberAll as $member) {
$member->rank_id = 2;
$member->save();
}