Хорошо, у меня нет идей, и я достиг конечной точки моего исследования.
иметь регистрационную форму с датой рождения, выберите поля ниже:
<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)
Я что-то упускаю в этом коде функции, но не могу понять, что это такое.
Ввод? предложения?
Заранее спасибо.
использование 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;
}
private function setDobAttribute(){
$array = array('dob_year', 'dob_month', 'dob_date');
return $this->attributes['dob'] = implode(-', $array);
}