嗨,我创建了数据库种子作为"CartSeeder“,但我不能开始种子,它给了我这个错误。我检查了几次我的代码,但对我来说似乎没问题。
我有三个工作台,购物车,产品和数据透视表。我有他们的模型。你可以在下面看到关于它们的信息。
CartSeeder;
$cart = Cart::where('user_id',\Auth::id())->first();
$products = Product::inRandomOrder()->take(5)->get();
$cart->products()->sync($products,false);Cart模型;
public function products(){
return $this->belongsToMany('App\Product','cart_product','cart_id','product_id');
}产品模型;
public function carts(){
return $this->belongsToMany('App\Cart','cart_product','product_id','cart_id');
}我在这里哪里弄错了?
发布于 2017-12-31 18:13:13
这意味着您没有任何user_id等于认证用户ID的购物车,这是因为您使用控制台命令而不是web请求来运行seeder。
发布于 2017-12-31 18:12:19
查看错误,确保$cart变量不为空。
添加:
dd($cart);以确保它不为空
在真实的应用程序中,使用firstOrFail通常更好,如下所示:
$cart = Cart::where('user_id',\Auth::id())->firstOrFail();在某些情况下。这将保证如果没有该用户的购物车,应用程序将停止。
https://stackoverflow.com/questions/48041598
复制相似问题