Yii2 时间控件之把layDate做成widget

  实现效果如下

   

 

  1.把layDate封装成Yii2的widget,存在 "\common\widgets"目录下,命名为DycLayDate,具体引用查看代码。

  2.对应的model的rules方法加上:

[['cms_publish_date'], 'date', 'format'=>'yyyy-MM-dd HH:mm:ss' , 'message' => '{attribute}格式不正确', 'on' => ['createDo', 'updateDo'] ]

  其中:date --字段为日期格式;

     format:规定日期格式;

       message:不符合时提示信息;

       on(可省略):设置使用场景;

  具体用法,请查看validate类。

  3.控制器中:

  把原来的代码,

1 $model->setScenario('updateDo');  //设置场景
2 if( !$model->save() ){
3     $this->throwException( '编辑失败,原因:' . $model->getErrorsDesc() );
4 }

  改成下面的形式。

 
 
1 $model->setScenario('updateDo');
2 if( $model->validate() ){
3            $model->cms_publish_date = DycUtil::beforeValidateStr2Tim($_POST['DycCmsInfo']['cms_publish_date']);
4            $model->save(false);
5         }else{
6            $this->throwException( '编辑失败,原因:' . $model->getErrorsDesc() );
7         }
 
 

  4.视图中引用:

<?= $form->field($model, 'cms_publish_date')->widget('common\widgets\DycLaydate', ['defaultDate' => $model->cms_publish_date]) ?>

  大功告成。值得注意:date的验证,好像不支持客户端,暂时没弄明白。

  在此感谢贤心,layDate连接

 

 

转载于:https://www.cnblogs.com/Jackmee/p/5598947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值