gpt4 book ai didi

php - 在一对多关系 laravel 5 中保存多条记录

转载 作者:可可西里 更新时间:2023-11-01 00:40:14 25 4
gpt4 key购买 nike

我试图在一对多关系中保存多条记录。我有以下两个模型。

Product Model

class Product extends Model
{
protected $primaryKey = 'product_id';
public $timestamps = FALSE;

public function Size(){
return $this->hasMany('App\Size');
}

}

Size Model

class Size extends Model
{
public $timestamps = FALSE;
protected $fillable = ['product_id','size'];

public function Product(){
return $this->belongsTo('App\Product');
}
}

我想保存产品的尺寸。我的 Controller 是

public function store(Request $request){

$product_id = Products::select('product_id')->orderBy('product_id','desc')->first();

if($request->size_m) $sizes[] = array("size" => $request->size_m );
if($request->size_l) $sizes[] = array("size" => $request->size_l);
if($request->size_s) $sizes[] = array("size" => $request->size_s);

$product_id->Size()->saveMany($sizes);


}

但是我收到以下错误

FatalThrowableError in HasOneOrMany.php line 221: Type error: Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, array given, called in D:\e-commerec\blog\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Relations\HasOneOrMany.php on line 237

问题是什么?

最佳答案

好的,让我们从 https://laravel.com/docs/5.4/eloquent-relationships 中的示例开始:

$post = App\Post::find(1);

$post->comments()->saveMany([
new App\Comment(['message' => 'A new comment.']),
new App\Comment(['message' => 'Another comment.']),
]);

问题

你用数组传递一个数组。这是错误的。

解决方案

您需要传递一个包含Size 对象 的数组,简化如下:

$product_id->Size()->saveMany([
new App\Size(['size' => 1])
]);

关于php - 在一对多关系 laravel 5 中保存多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43053528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com