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提供的方法。
出处:www.l1mn.com
原文标题:yii2 教程(1)
原文地址:https://www.l1mn.com/p/3dbpn4.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
Copyright © L1MN.COM 联系方式:l1mnfw@163.com