@EVOSandru6

Насколько допустимо в laravel условие на relation?

Добрый день,

Есть 2 модели - User и Contract( provider_id, customer_id, sign )

class User extends Model {
    public function isProvider()
    {
        return $this->role === 1;
    }

    public function isCustomer()
    {
        return $this->role === 2;
    }

   public function contracts()
    {
        if($this->isProvider())
            return $this->hasMany(Contract::class, 'provider_id');
        if($this->isCustomer())
            return $this->hasMany(Contract::class, 'customer_id');
    }

}


Насколько верна реализация связи contracts?

Имеет ли смысл наследовать Provider и Customer от User и прописывать связи в них?
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
Laravel глубоко пофигу, это уже бизнес-логика. Проблема может быть только в обратную сторону, если к контракту привязывать юзера:
// что за юзер — провайдер или потребитель?
// по какому полю строить связь?
$contract->user()->associate($user);
Впрочем, судя по всему, достаточно на другой стороне подобную конструкцию с условиями сделать. Но могут быть проблемы: создали инстанс модели, provider_id и customer_id не заполнили — что в условиях проверять?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы