Updating One to many relation in laravel 5.3(更新 Laravel 5.3 中的一对多关系)
问题描述
我想更新一对多关系.例如,我有一个名为 Product
I want to update a one to many relationship. For example I have a model called Product
class Product extends Model
{
protected $primaryKey = 'product_id';
public $timestamps = FALSE;
public function Size(){
return $this->hasMany('AppSize');
}
}
和一个名为 Size
class Size extends Model
{
public $timestamps = FALSE;
protected $fillable = ['product_id','size'];
public function Product(){
return $this->belongsTo('AppProduct');
}
这是我的控制器:
public function update(Request $request){
for($i = 1; $i <= $sizeCounter; $i++){
$selectedSize = "size_$i";
if($request->$selectedSize){
$array = ['size'=> $request->$selectedSize];
}
}
$Size = Size::where('product_id' , $request->id)->update($array);
}
但是它正在做什么用选定的产品 id 更新所有尺寸记录到最后一个输入者尺寸.我想用选定的不同尺寸而不是最后选择的尺寸更新所有尺寸
But what it is doing updating all the records of size with the selectedd product id to the last enterder size. I want to update all the sizes with the slected diffrent sizes not the last selected sizes
如何更新特定产品的尺寸.像多对多关系的同步方法一样,有什么方法可以更新记录.
How to update the sizes of a particular product. Like many to many relations' sync method is there any way to update the records.
推荐答案
你在循环中覆盖你的$array
.在 for 循环之后,$array
可能是最后一个大小.
You override your $array
in the loop. After the for loop, $array
has possibly the last size.
总的来说,您的查询是正确的,但它与执行的位置有关.它应该如下所示:
In general, your query is correct, but it's about the place of execute. It should be like below:
if (isset($request->$selectedSize)) { // or is_int() ?
$Size = Size::where('product_id', $request->id)->update(['size'=> $request->$selectedSize]);
}
这篇关于更新 Laravel 5.3 中的一对多关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:更新 Laravel 5.3 中的一对多关系


- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- PHP - if 语句中的倒序 2021-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01