首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-5.5调用成员函数产品时出现Null错误(多对多关系)

Laravel-5.5调用成员函数产品时出现Null错误(多对多关系)
EN

Stack Overflow用户
提问于 2017-12-31 18:10:29
回答 2查看 208关注 0票数 2

嗨,我创建了数据库种子作为"CartSeeder“,但我不能开始种子,它给了我这个错误。我检查了几次我的代码,但对我来说似乎没问题。

我有三个工作台,购物车,产品和数据透视表。我有他们的模型。你可以在下面看到关于它们的信息。

CartSeeder;

代码语言:javascript
复制
$cart = Cart::where('user_id',\Auth::id())->first();
$products = Product::inRandomOrder()->take(5)->get();
$cart->products()->sync($products,false);

Cart模型;

代码语言:javascript
复制
public function products(){
        return $this->belongsToMany('App\Product','cart_product','cart_id','product_id');
    }

产品模型;

代码语言:javascript
复制
public function carts(){
        return $this->belongsToMany('App\Cart','cart_product','product_id','cart_id');
    }

我在这里哪里弄错了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-31 18:13:13

这意味着您没有任何user_id等于认证用户ID的购物车,这是因为您使用控制台命令而不是web请求来运行seeder。

票数 2
EN

Stack Overflow用户

发布于 2017-12-31 18:12:19

查看错误,确保$cart变量不为空。

添加:

代码语言:javascript
复制
dd($cart);

以确保它不为空

在真实的应用程序中,使用firstOrFail通常更好,如下所示:

代码语言:javascript
复制
$cart = Cart::where('user_id',\Auth::id())->firstOrFail();

在某些情况下。这将保证如果没有该用户的购物车,应用程序将停止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48041598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档