主要形成modal(弹出窗)模板风格:
1、将vendor\yiisoft\yii2-gii\generators\crud\default复制到backend\components\gii-custom\crud\default,在backend中缺少的文件自己创建,default中包含gii自动生成的代码
2、配置main-local.php
$config['modules']['gii']=[
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1','::1'],
'generators' => [
'crud'=>[
'class'=>'yii\gii\generators\crud\Generator',
'templates'=>[
'myCrud'=>'@app/components/gii-custom/crud/default',
]
]
],
];
}
3、修改default中index.php的代码(都在该文件中中修改)
a.create按钮
<p>
<?= "<?= " ?>Html::a(<?= $generator->generateString('创建' . Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>, ['create'], [
'class' => 'btn btn-success',
'id'=>'create',
'data-toggle'=>'modal',
'data-target'=>'#operate-modal',
]) ?>
</p>
b、GridView和modal结合
['class' => 'yii\grid\ActionColumn',
'template'=>'{update}{delete}',
'header'=>'操作',
'buttons'=>[
'update'=>function ($url,$model,$key){
return Html::a('信息',$url,[
'title'=>'栏目信息',
'class'=>'btn btn-default btn-update',
'data-toggle'=>'modal',
'data-target'=>'#operate-modal',
]);
},
'delete'=>function ($url,$model,$kry){
return Html::a('删除',$url,[
'title'=>'删除',
'class'=>'btn btn-default',
'data'=>[
'confirm'=>'确定删除吗?',
'method'=>'post',
],
]);
},
],
],
c、页面低端创建modal和create、update
//创建modal
Modal::begin([
'id'=>'operate-modal',
'header'=>'<h4 class="modal-title"></h4>'
]);
Modal::end();
//创建create
$requestCreateUrl=Url::toRoute('create');
//创建update
$requestUpdateUrl=Url::toRoute('update');
$js=<<<JS
//创建create操作
$('#create').on('click',function(){
$('.modal-title').html('创建');
$.get('{$requestCreateUrl}',function (data){
$('.modal-body').html(data);
});
});
//创建update操作
$('.btn-update').on('click',function{
$('.modal-title').html('删除');
$.get('{$requestUpdateUrl}',{id:$(this).closest('tr').data('key')},
function(data){
$('.modal-body').html(data);
}
);
});
JS;
$this->registerJs($js);
4、修改表单页面_fom.php
<?= "<?php " ?>$form = ActiveForm::begin([
'id'=>'<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-id',
'enableAjaxValidation'=>true,//通过异步验证
'validationUrl'=>Url::toRoute('validate-form'),
]);
?>
5、在控制器中增加actionValidateForm验证
//异步表单验证ValidateForm
public function actionValidateForm(){
$model=new <?=$modelClass?>();
$model->load(Yii::$app->request->post());
Yii::$app->response->format=yii\web\Response::FORMAT_JSON;
return \yii\widgets\ActiveForm::validate($model);
}
6、针对某个数据表可以gii生成相应的模板
注:自己也是学习白狼大哥的教程,只是作为自己学习的总结
http://www.manks.top/document/yii2-blog-manage.html