zqifa的博客

我不管,反正我最萌~

yii2 教程(1)

1、js文件加载顺序问题

在视图中引用js文件的时候,使用到jquery会报错,因为自定义的js文件在jquery之前被引入了。

由于jquery,bootstrap是在AppAsset中全局引入的,默认是放在最后,很坑

在AppAsset中加入如下代码,可以让jquery在head部分引入,解决这个问题,不知道有没有其他更好的方法

public $jsOptions = [
'position'=> \yii\web\View::POS_HEAD
];

2、使用下拉框

cateList是栏目数组,id为select选项value,title为文字

<?php echo $form->field($model, 'cate')->dropDownList(ArrayHelper::map($cateList,'id', 'title')) ?>

<?php echo Html::dropDownList('cate', null, ArrayHelper::map($data,'id', 'val'), ['class' => 'dropdownlist']); ?>

<?php echo $form->field($model, 'cate')->dropDownList(ArrayHelper::map(Cate::find()->asArray()->all(),'id', 'val')) ?>

添加默认值

<?php echo $form->field($model, 'cate')->dropDownList(ArrayHelper::map(Cate::find()->asArray()->all(),'id', 'val'),['prompt'=>'select...']) ?>

3、DetailView输出自定义样式和处理数据

create_at为模型数据表的创建时间戳,转换为时间格式输出

<?php echo DetailView::widget([
'model' => $model,
'attributes' => [
'id',
//'create_at:datetime',
['label'=>'创建时间','value'=>date("Y-m-d H:i:s",$model->create_at)],
],
]); ?>

4、使用DataProvider进行分页

在search Model的search()方法里有一个$dataProvider 属性 ,在这个属性数组里添加
'pagination' => ['pageSize' => 10,],

例如

$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pagesize' => 3,
]
]);

当然做的时候其实可以自己写前端代码,也不用全部使用yii2提供的方法。

作者:zqifa

出处:http://l1mn.com

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

分类:phpyii
标签:yii2yii

Copyright © zqifa 联系方式:zqifa@outlook.com