public function patients_view($id)
{
$patient = Patients::where('id', '=', $id)->first();
// ....
}
Мне просто нужно посмотреть возраст. Спасибо, я использую blade.php кстати
на самом деле у меня есть выпадающие списки для месяца, дня и года. так как целевому пользователю не нужен вид календаря, и это причина, по которой я разделил столбцы вместо одного
Разделение полей является хорошей практикой для сбора пользовательского ввода, но объединение их вместе в один тип DATE в базе данных практически всегда будет полезным.
Какую версию Laravel вы используете?
@ruleboy21 я использую 5.4
Вы можете использовать «Аксессуар», чтобы получить возраст.
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);
// ....
}
Схему можно изменить? Эта установка даты вызовет проблемы в будущем. Гораздо проще использовать тип данных
date
, чем извлекать любое значение из него с помощьюMONTHNAME()
,YEAR()
илиDAY()
, которое необходимо.