【发布时间】:2021-03-19 20:13:00
【问题描述】:
我不久前开始使用 Laravel/Eloquent。来自 Java/Hibernate,但从未精通。尝试开辟新方法。现在使用最新版本的 Laravel 8。 AFAIK,在 java hibernate 中,您可以在 Model 中声明 id 属性,通过 Hibernate 注释将其链接到 DB builder,并且,当您部署应用程序时,它会创建一堆表和限制,例如 PK、FK、UNIQUE 等(保留它简单的愚蠢)。
来自artisan创建的用户模型,但稍微修改了一些随机属性,但内部没有静态函数id()@
我猜,这家工厂有麻烦了,在 $vend->id 和 $comp->id 中。 卖家和买家扩展用户。 所有用户都可以是卖家和买家,但不能自己购买
我失去了什么?如何静态调用实例化对象的属性?我应该实现像return self::id 这样的静态函数吗?但在种子表中没有id!!!!那我应该在我的模型里面放一个 id 属性吗?
对不起,如果这听起来很愚蠢,所以我也是新手。 提前致谢
【问题讨论】:
-
你确实需要在你的模型中放置一个静态方法,但是你想用这个 id() 方法做什么
-
我不确定我想用它做什么,它只是声称,但我没有生成呼叫。它由 Eloquent 自动加载。
-
在播种器中看不到任何可能引发异常的行。浏览工厂并检查您是否在这些工厂中对
id()方法有任何引用。 -
尝试在此处发布代码而不是图片,但在这个问题中,代码是否在图片中或在此处发布并不重要
-
$vend=Seller::has('products')->get()->random(); $vend 是卖方记录。所以在下一个语句中 $vendor->id->random() 没有意义。 $vendor->id 是单个值,没有随机方法。此外,除了收集方法外,还应使用键、值来定义。 Comp=User::all()->except('id', $vend->id)。仍然找不到会在用户上为
id()引发错误的行