这是我提出的最后一个问题..
我有会员资格表
Schema::create('role_memberships', function (Blueprint $table) {
$table->increments('id');
$table->integer('role_id');
$table->string('MembershipName');
$table->text('MembershipValue');
$table->timestamps();
});
我有两个具有相同role_id的行数据,我想更新两行 这是我的控制器
$updateArray = [['MembershipValue' => $request->PostAdMaxImage],
['MembershipValue' => $request->PostAdExpiredDay]];
DB::table('role_memberships')->where('role_id', $id)-
>whereIn('role_id', $role->pluck('id'))->update($updateArray);
当我尝试更新时,我得到一个错误数组到字符串转换..
答案 0 :(得分:2)
它对我有用,即使该线程是2年前,我也想分享我的解决方案,我希望这可以对某人有所帮助。
刀片式
<input name="quantity[]">
<input name="total[]">
<input name="prodId[]">
控制器
foreach ($request->prodId as $key => $value) {
$data = array(
'quantity'=>$request->quantity[$key],
'total'=>$request->total[$key],
);
Cart::where('id',$request->prodId[$key])
->update($data);
}
答案 1 :(得分:1)
有2个错误:
1)whereIn函数需要一个参数数组作为
$users = DB::table('users')
->whereIn('id', [1, 2, 3])
->get();
2)更新函数需要一个简单的数组,例如
DB::table('users')
->where('id', 1)
->update(['votes' => 1]);
你传递[[], []]
所以你必须传递示例$model->update(['MembershipValue' => $request->PostAdMaxImage])
在这里您找到了update
和whereIn
https://laravel.com/docs/5.5/queries
答案 2 :(得分:1)
我认为这只是我可以使用的方式..
DB::table('role_memberships')->where('role_id', $id)->where('MembershipName','PostAdMaxImage')->update(['MembershipValue' => $request->PostAdMaxImage]);
DB::table('role_memberships')->where('role_id', $id)->where('MembershipName','PostAdExpiredDay')->update(['MembershipValue' => $request->PostAdExpiredDay]);
如果你们有最好的方式或最短的方式,请告诉我..谢谢你;)
答案 3 :(得分:0)
试试这个。它适用于我。
DB::table('role_memberships')->where('role_id', $id)-
>update(['MembershipValue' => $request->PostAdMaxImage, 'MembershipValue' => $request->PostAdExpiredDay]);
答案 4 :(得分:0)
我有两行数据,相同的role_id,我想更新两行这是我的控制器
$updateArray = [['MembershipValue' => $request->PostAdMaxImage], MembershipValue' => $request->PostAdExpiredDay]];
DB::table('role_memberships')->where('role_id', $id)->whereIn('role_id', $role->pluck('id'))->update($updateArray);
当我尝试更新时,我得到一个错误数组到字符串转换..
这是因为$ updateArray上的数组中有一个数组。像这样修复它应该可以纠正你的错误:
$updateArray = ['MembershipValue' => $request->PostAdMaxImage, 'MembershipValue' => $request->PostAdExpiredDay];
答案 5 :(得分:0)
在LARAVEL中更新批次(批量)
https://github.com/mavinoo/updateBatch
$table = 'users';
$value = [
[
'id' => 1,
'status' => 'active'
],
[
'id' => 5,
'status' => 'deactive',
'nickname' => 'Ghanbari'
],
[
'id' => 10,
'status' => 'active',
'date' => Carbon::now()
],
[
'id' => 11,
'username' => 'mavinoo'
]
];
$index = 'id';
UpdateBatch::updateBatch($table, $value, $index);