我使用 Laravel 7.2,我有 2 个模型:
用户
public function orders()
{
if($this->hasRole("seller")) {
return $this->hasMany('App\Models\Order', 'seller_id', 'id');
} else if($this->hasRole("client")) {
return $this->hasMany('App\Models\Order', 'user_id', 'id');
}
}
命令
移民:
Schema::create('orders', function (Blueprint $table) {
$table->id();
$table->boolean('status')->default(false);
$table->text('description')->nullable();
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
$table->unsignedBigInteger('seller_id');
$table->foreign('seller_id')
->references('id')
->on('users')
->onDelete('cascade');
$table->timestamps();
$table->softDeletes();
});
代码:
public function user()
{
return $this->belongsTo('App\Models\User', 'user_id');
}
public function seller()
{
return $this->belongsTo('App\Models\User', 'seller_id');
}
现在在我的情况下,用户有两个角色Seller或client。但是当我尝试获取用户订单时,laravel 会返回错误消息:
在 null 上调用成员函数 addEagerConstraints()
或者当我尝试获取自定义订单用户或卖家相关数据时,也会返回相同的错误消息。
我在哪里有任何错误或我错误地创建了关系?