从 php 表格中分离出生日期值
Implode separate date of birth values from php form
好吧,我没主意了,我的研究已经到了终点。
有一个带有生日 select 字段的注册表,示例如下:
<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>
当然在 laravel 的 blade 模板中。
如您所见,它具有 3 个单独的 select 形式,分别为 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
,使用 implode('-'array_values($dobString))
结构化为 1997-12-01,然后保存到数据库。
当我完成注册新用户的过程时,我收到未定义索引的错误消息:dob。
现在我也感觉到,在增变函数中 setDobAttribute($dob)
我在该函数代码中遗漏了一些东西,但我似乎无法确定它是什么。
输入?建议?
提前致谢。
private function setDobAttribute(){
$array = array('dob_year', 'dob_month', 'dob_date');
return $this->attributes['dob'] = implode(-', $array);
}
使用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;
}
好吧,我没主意了,我的研究已经到了终点。
有一个带有生日 select 字段的注册表,示例如下:
<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>
当然在 laravel 的 blade 模板中。
如您所见,它具有 3 个单独的 select 形式,分别为 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
,使用 implode('-'array_values($dobString))
结构化为 1997-12-01,然后保存到数据库。
当我完成注册新用户的过程时,我收到未定义索引的错误消息:dob。
现在我也感觉到,在增变函数中 setDobAttribute($dob)
我在该函数代码中遗漏了一些东西,但我似乎无法确定它是什么。
输入?建议?
提前致谢。
private function setDobAttribute(){
$array = array('dob_year', 'dob_month', 'dob_date');
return $this->attributes['dob'] = implode(-', $array);
}
使用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;
}