Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新时的Yii-DOB格式_Php_Yii_Date Format_Date Formatting_Dob - Fatal编程技术网

Php 更新时的Yii-DOB格式

Php 更新时的Yii-DOB格式,php,yii,date-format,date-formatting,dob,Php,Yii,Date Format,Date Formatting,Dob,想知道是否有人能帮忙 我的表格正在填充数据库中的DOB字段。我们已经做了一些工作,使其更加用户体验友好,并确保以正确的格式获得出生日期,然而,当我随后去更新表单时,它并没有重新解释DOB字段 这是我的密码 模型 模型->规则() 模型->添加到beforesave()中 在视图中 echo $form->textFieldGroup( $user, 'day', array( 'widgetOptions' => array( 'htmlOptio

想知道是否有人能帮忙

我的表格正在填充数据库中的DOB字段。我们已经做了一些工作,使其更加用户体验友好,并确保以正确的格式获得出生日期,然而,当我随后去更新表单时,它并没有重新解释DOB字段

这是我的密码

模型

模型->规则()

模型->添加到beforesave()中

在视图中

echo $form->textFieldGroup(
  $user, 
  'day', 
  array(
    'widgetOptions' => array(
      'htmlOptions' => array(
        'placeholder' => 'DD')
  )
)) ;
echo $form->dropDownListGroup(
    $user,
   'month',
   array(
       'widgetOptions' => array(
          'data' => array('01' => 'January' , '02' => 'February' , '03' => 'March' , '04' => 'April' , '05' => 'May' , '06' => 'June' , '07' =>'July' , '08' =>'August' , '09' =>'September' , '10' =>'October' , '11' =>'November' , '12' =>'December'),
        // 'data' => 'Jan','Feb';
          'htmlOptions' => array(
            'class' => 'col-md-3 ',
            'prompt' => 'Choose month',
          ),
       )
   )
 );
 echo $form->textFieldGroup(
  $user, 
  'year', 
  array(
    'widgetOptions' => array(
      'htmlOptions' => array(
        'placeholder' => 'YYYY',
        'class' => 'col-md-3',
      )
)
));
显然更新的视图是相同的,但我需要actionUpdate的一些东西来分解数据并将其放回下拉列表中


有人对最简单的方法有什么想法吗?

看看我看不出有什么不同。我觉得afterFind()是将dob字段分解回其原始值的工具,但它没有做任何事情。您是否已将beforevalidate函数添加到
y-m-d
格式的frame
dob
变量中?这不仅仅是为了将文件正确存储在数据库中?我已经通过beforeSave()完成了这项操作?只是确认一下,我已经拥有的功能已经存在,并且在创建时可以正常工作,以正确的格式存储数据,只是更新没有分解数据确定现在得到了,如果发生验证错误,您想在验证后分解它吗?是吗?看看我看不出我做了什么不同。我觉得afterFind()是将dob字段分解回其原始值的工具,但它没有做任何事情。您是否已将beforevalidate函数添加到
y-m-d
格式的frame
dob
变量中?这不仅仅是为了将文件正确存储在数据库中?我已经通过beforeSave()完成了这项操作?只是确认一下,我已经拥有的功能已经存在,并且在创建时可以正常工作,以正确的格式存储数据,只是更新没有分解数据确定现在得到了,如果发生验证错误,您想在验证后分解它吗?它是?
array('day','length', 'max'=>2),
array('day','length', 'min'=>2),
array('day', 'numerical','integerOnly' => true, 'min' => 1 ),
array('year','length', 'max'=>4),
array('year','numerical','integerOnly' => true, 'min' => 4),


protected function afterFind() {    
    $dob = explode('/', $this->dob);
    $this->year = $dob[0];
    $this->month = $dob[1];
    $this->day = $dob[2];            

    parent::afterFind();
   }
$this->dob = $this->year .'/'. $this->month .'/'. $this->day;
echo $form->textFieldGroup(
  $user, 
  'day', 
  array(
    'widgetOptions' => array(
      'htmlOptions' => array(
        'placeholder' => 'DD')
  )
)) ;
echo $form->dropDownListGroup(
    $user,
   'month',
   array(
       'widgetOptions' => array(
          'data' => array('01' => 'January' , '02' => 'February' , '03' => 'March' , '04' => 'April' , '05' => 'May' , '06' => 'June' , '07' =>'July' , '08' =>'August' , '09' =>'September' , '10' =>'October' , '11' =>'November' , '12' =>'December'),
        // 'data' => 'Jan','Feb';
          'htmlOptions' => array(
            'class' => 'col-md-3 ',
            'prompt' => 'Choose month',
          ),
       )
   )
 );
 echo $form->textFieldGroup(
  $user, 
  'year', 
  array(
    'widgetOptions' => array(
      'htmlOptions' => array(
        'placeholder' => 'YYYY',
        'class' => 'col-md-3',
      )
)
));