Как установить атрибут Laravel для условия - PullRequest
0 голосов
/ 25 января 2019

У меня есть вопрос по поводу красноречивого ORM Laravel, и мне не удалось найти ответ здесь. Надеюсь, что следующее имеет смысл, но если вам нужны какие-либо разъяснения, пожалуйста, спросите.

Я хочу создать атрибут в моей модели User для доступности.

Моя текущая модель пользователя выглядит следующим образом:

class User extends Authenticatable implements MustVerifyEmailContract
{

    ...

    /**
     * Get the dates available for the user.
     */
    public function dates()
    {
        return $this->hasMany(Date::class);
    }

    ...

}

Возвращает все даты из базы данных, для которой доступен пользователь, и работает нормально.

Столбцы для дат выглядят как id, from, to с from и to, являющимися датами.

Что я хотел бы сделать, так это получить в моих представлениях что-то похожее на следующее, сохранив при этом коллекцию дат:

$user->is_available_today

Есть ли способ создать атрибут, который даст мне эти данные.

Например:

public function getIsAvailableTodayAttribute()
{
    $today = date("Y-m-d");
    return $this->from <= $today && $this->to => $today;
}

Спасибо

1 Ответ

0 голосов
/ 25 января 2019

Вы можете сделать это так:

public function getIsAvailableTodayAttribute()
{
    return $this->dates()->where([
        ['from', '<=', now()],
        ['to', '>=', now()],
    ])->count() > 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...