sql — вывести отдельные значения даты рождения из формы php

Хорошо, у меня нет идей, и я достиг конечной точки моего исследования.

иметь регистрационную форму с датой рождения, выберите поля ниже:

<div class="row">
<div class="col-xs-2">
{!! Form::selectMonth('dob_month', 1, ['class'=> 'form-control']) !!}
</div>
<div class="col-xs-2">
{!! Form::selectRange('dob_date', 1, 31, 1, ['class'=> 'form-control']) !!}
</div>
<div class="col-xs-2">
{!! Form::selectYear('dob_year', 1930, 1997, 1991, ['class'=> 'form-control']) !!}
</div>
</div>

конечно, это в шаблоне лезвия Ларавелла.

Как вы можете видеть его 3 отдельных формы выбора с dob_month, dob_date и dob_year и значениями теперь для мутатора, который в пользовательской модели

private function setDobAttribute($dob){

$dobString = ['dob_year', 'dob_month', 'dob_date'];

$this->attributes['dob'] = implode('-', array_values($dobString));

}

с dob как имя столбца sql.

Проблема

Я хочу захватить dob_year, dob_month, dob_date который будет структурирован как 1997-12-01 с использованием implode('-'array_values($dobString)) который затем будет сохранен в базе данных.

Когда я прохожу процесс регистрации нового пользователя, я получаю сообщение об ошибке Undefined index: dob.

Теперь я также чувствую, что в функции мутатора setDobAttribute($dob) Я что-то упускаю в этом коде функции, но не могу понять, что это такое.

Ввод? предложения?

Заранее спасибо.

2

Решение

использование array_map может быть…

private function setDobAttribute($dob){
$keys = ['dob_year', 'dob_month', 'dob_date'];
$this->attributes['dob'] =
implode('-', array_map(function($key) use($dob){
return $dob[$key];
}, $keys));
return $this;
}
1

Другие решения

private function setDobAttribute(){

$array = array('dob_year', 'dob_month', 'dob_date');
return $this->attributes['dob'] = implode(-', $array);
}
0

По вопросам рекламы [email protected]