Дни рождения с Laravel - PullRequest
       1

Дни рождения с Laravel

0 голосов
/ 09 апреля 2020

У меня есть следующее SQL:

SELECT *, DAY(dt_birth) FROM users WHERE MONTH(dt_birth) ='04' ORDER BY DAY(dt_birth) ASC

dt_birth : это место, где данные о дате рождения находятся в моей базе данных;

04 : текущий месяц (апрель)

Как бы я мог указать это sql, используя Laravel?

Какой будет правильный синтаксис?

1 Ответ

0 голосов
/ 09 апреля 2020

Давайте посмотрим на Query Builder :)

Так что одним из способов может быть:

$users = DB::table('users')
    ->whereMonth('birthdate', date('m'))
    ->orderBy('birthdate', 'asc')
    ->get();

Также обратите внимание, что мы не хотим выбирать день с использованием запроса.
Лучшим способом было бы использование Eloquent Mutator

class User extends Model
{
    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = [
        'birthdate',
    ];

    /**
     * Get the user's birthday.
     *
     * @return string
     */
    public function getBirthdayAttribute()
    {
        return $this->birthdate->format('d');
    }
}

Теперь мы можем получить день рождения, используя $user->birthday. Пример:

$users->each(function ($user) {
    dump($user->birthday);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...