成龙、金喜善:美丽的神话

最美是爱情

yii框架
用yii开发个人网站之搭建前后台-上
用yii开发个人网站之搭建前后台-中
用yii开发个人网站之搭建前后台-下
Yii2的一些插件使用

Yii2的一些插件使用

Yii2插件使用:可参考 https://getyii.com/topic/51

例子1.  GridView
<?= 
    GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            'user_id',
            [
                'label' => 'status', // 可选 覆写
                'attribute' => 'status',
                'filter' => Html::activeDropDownList($searchModel, 'status', \common\models\User::getStatus(), ['class' => 'form-control']),
                'value' => function ($data) {
                    return \common\models\User::getStatus()[$data->status];
                },
            ],
            
            [
                'attribute' => 'image',
                'format' => ['image',['width'=>'40','height'=>'30','alt'=>'轮播大图','class'=>'magnifier']],
                'value' => function($src){
                    return Yii::$app->params['backend_domain'].'/'.$src->image;
                }
            ],
 
            'created_at:datetime',
            'expired_at:datetime',
            ['class' => 'yii\grid\ActionColumn'],
        
            ['label'=>'文章内容','format' => 'html','value' => 'content'], 
            [
                'label'=>'文章类别', /*'attribute' => 'cid',产生一个a标签,点击可排序*/ 
                'value' => 'cate.cname', //通过外键cname关联cate表 
            ], 
            [ //动作列yii\grid\ActionColumn //用于显示一些动作按钮,如每一行的更新、删除操作。 
                'class' => 'yii\grid\ActionColumn', 'header' => '操作',
                'template' => '{delete} {update}',//只需要展示删除和更新
                'headerOptions' => ['width' => '240'], 
                'buttons' => [ 
                    'delete' => function($url, $model, $key){ 
                        return  Html::a(
                                        '<i class="fa fa-ban"></i> 删除', 
                                        ['del', 'id' => $key], 
                                        [
                                            'class' => 'btn btn-default btn-xs',
                                            'data' => ['confirm' => '你确定要删除文章吗?',] 
                                        ],
                                    ); 
                    }, 
                ],      
            ], 
        ],
    ]);
?> 

例子2:
GridView::widget([ 
'dataProvider' => $dataProvider, 
'layout' => "{items}\n{pager}\n{summary}",
'summary' => '<p class="summary">当前显示第{begin} - {end}条,共{totalCount}条。</p>', 
'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 
      'name', 
      [ // 看这里 'attribute' => 'propertyValuesString', 
      'format' => 'html', //html换成raw就能解析html代码
        'value' => function ($model, $key, $index, $column){ 
             return '<div class="limit-width">'. $model->propertyValuesString .'</div>';
        }
      ], 

 ?>

例子3:
<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            [
                'label' => '图片', // 可选 覆写:覆盖掉attribute的中文名称
                'attribute' => 'photo',
                'format' => 'raw',
                'value' => function ($data) {
                    $data->photo= '1.jpg,2.jpg,3.jpg';
                    $img = $data->photo;
                    $img = explode(',',$img);
                    $imgHtml = '';
                    foreach($img as $k=>$v){
                       $imgHtml .= '<img src="'.$v.'" alt="">';
                    }
                    return $imgHtml;
                },
            ],
            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?> 

例子4:
DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            // 'creater',
            [//ID->人名
                'attribute'=>'creater',
                'value'=>User::getUsernameById($model->creater),
            ],
            [//时间
                'attribute'=>'created_at',
                'fotmat'=>'date',
                'value'=>date('Y-m-d H:i:s',$model->created_at),
            ], 
            [//状态ID->状态名称
                'attribute'=>'status',
                'value'=>News::statusTxt()[$model->status],
            ],
            [ //图片
                  'attribute' => 'seal_pic', 
                 'label' => '照片', 
                  'format' => ['image',['width'=>'40','height'=>'30']],
                  'value'=>'\image\tupian.jpg',
            ], 
            [//html (包括图片)
                'attribute'=>'content',
                'format' => ['html'],
                'value'=>'<img src="\image\tupian.jpg" />',//或者$model->getContentHtml();  在model里面getContentHtml函数可以用$this->content获取值并加于其他处理,如果想限制图片大小,style属性可能会被yii删除,建议用class加样式来限制
            ], 
 
例子5: form表单的template
1)对整个表单限制模板样式
$form = ActiveForm::begin([
          'options' => ['class' => 'form-horizontal'],
          'fieldConfig' => [
              'template' => "<div class='col-xs-3 col-sm-2 text-right'>{label}</div><div class='col-xs-9 col-sm-7'>{input}</div><div class='col-xs-12 col-xs-offset-3 col-sm-3 col-sm-offset-0'>{hint}{error}</div>",
    ]]);
2)对单个属性修改模板样式
<?= $form->field($model, 'modules_name',['template'=>"<div class='col-lg-6'>{label}\n{input}\n{hint}\n{error}</div>"])->textInput() ?>