Соедините столбцы День, Месяц, Год, чтобы рассчитать возраст

Соедините столбцы День, Месяц, Год, чтобы рассчитать возраст

public function patients_view($id)
{
    $patient =  Patients::where('id', '=', $id)->first();

    // ....
}

Мне просто нужно посмотреть возраст. Спасибо, я использую blade.php кстати

Схему можно изменить? Эта установка даты вызовет проблемы в будущем. Гораздо проще использовать тип данных date, чем извлекать любое значение из него с помощью MONTHNAME(), YEAR() или DAY(), которое необходимо.

user3783243 06.05.2022 21:43

на самом деле у меня есть выпадающие списки для месяца, дня и года. так как целевому пользователю не нужен вид календаря, и это причина, по которой я разделил столбцы вместо одного

MaeMae 06.05.2022 21:48

Разделение полей является хорошей практикой для сбора пользовательского ввода, но объединение их вместе в один тип DATE в базе данных практически всегда будет полезным.

Sammitch 06.05.2022 21:51

Какую версию Laravel вы используете?

ruleboy21 06.05.2022 21:55

@ruleboy21 я использую 5.4

MaeMae 06.05.2022 21:59
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать «Аксессуар», чтобы получить возраст.

  • Определите метод getAgeAttribute, который вычисляет возраст в Patients модель
  • Добавьте метод к модели
class Patients extends Model
{
    protected $appends = ['age'];

    /**
     * Get the patients's age.
     *
     * @param  string  $value
     * @return string
     */
    public function getAgeAttribute($value)
    {
        $age = (time() - strtotime($this->dobDay.' '.$this->dobMonth.' '. $this->dobYear)) / (60 * 60 * 24 * 365);
        $age = floor($age);

        return $age;
    }
}

И использовать его так

public function patients_view($id)
{
    $patient =  Patients::where('id', '=', $id)->first();
    dd($patient->age);
    // ....
}

Другие вопросы по теме