Я использую 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');
}
Теперь в моем случае пользователи имеют две роли: продавец или клиент . Но когда я пытаюсь получить пользовательские заказы, laravel возвращает мне сообщение об ошибке:
Вызов функции-члена addEagerConstraints () со значением NULL
Или когда я пытаюсь получить пользовательский заказ Данные, связанные с пользователем или продавцом, также возвращают то же сообщение об ошибке.
Где произошла ошибка или я неправильно создал отношения?