<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                > 在 GridView 小部件是從數據提供者獲取數據,并以一個表格的形式呈現數據。表中的每一行代表一個單獨的數據項,列表示該項目的屬性。 [TOC] 在 DataGrid 小部件中的列是在 yii\grid\Column 類中進行配置的。它代表一個模型屬性,并可以進行過濾和排序。 ### GridView 列顯示常用操作 ~~~ <?php echo GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ 'id', 'published_at:datetime', [ 'label' => '排序值(越大越靠前)', 'value' => function ($model) { return $model->order_num; } ], //[ 是否顯示某列 ],意思是如果參數type為1的情況,該列就顯示 [ 'attribute' => 'buy_num', 'label' => '商品總價(元)', 'value' => function($model){ return $model->buy_num * $model->product_price_num; } 'visible' => Yii::$app->request->get('type') == 1, ], //[ 設定寬度 ],如title列太長了,可以限定一下 [ 'attribute' => 'title', 'headerOptions'=> ['width'=> '100'], ], 'create_at:date', //短的時間顯示:Y-m-d 'create_at:datetime', //長的時間顯示:Y-m-d H:i:s [ 'label' => '子類鏈接', //為字段加超鏈接 'format' => 'raw', 'value' => function ($model){ return Html::a('屬性列表', ['test/index','id'=>$model->id]); } ], ], ]); ?> ~~~ ### 自定義按鈕 ~~~ <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'nickname', 'sex', [ 'class' => 'yii\grid\ActionColumn', 'template' => '{view} {update} {delete} {refresh}', 'buttons' => [ 'refresh'=>function ($url, $model, $key) { return Html::a('刷新', ['user/refresh', 'id' => $model->id, 'status'=>0], ['class' => "btn btn-xs btn-danger"]); } ] ], ], ]); ?> ~~~ ### 使用多選框 > 一般用于批量設置狀態或者批量刪除等。 ~~~ <?php echo GridView::widget([ // ...... "options" => ["class" => "grid-view","style"=>"overflow:auto", "id" => "grid"], "columns" => [ [ "class" => "yii\grid\CheckboxColumn", "name" => "id", ], 'id', 'name', ], ]); echo Html::a("批量刪除", "javascript:void(0);", ["class" => "btn btn-success mybtn"]); $this->registerJs(' $(document).on('click', '.mybtn', function () { //可以把選中的id通過ajax提交到后端,然后借助yii的deleteAll()語句進行刪除或操作 var keys = $("#grid").yiiGridView("getSelectedRows"); console.log(keys); }); '); ?> ~~~ ### GridView(搜索)數據篩選 > 要篩選數據,表格視圖需要一個模型從過濾的表單取得輸入數據,并調整 dataprovider 的查詢語句到期望的搜索條件。使用active records的慣例是建立一個搜索模型類繼承活動記錄類。然后用這個類定義搜索的驗證規則和提供 search() 方法來返回 data provider 。 要給 Article 模型添加搜索能力,可以創建 ArticleSearch ,如下所示: #### 修改Article模型 ~~~ //包含如下關聯表數據 public function getAuthor() { return $this->hasOne(Author::className(), ['id' => 'author_id']); } public function getArticleType() { return $this->hasOne(ArticleType::className(), ['id' => 'article_type_id']); } ~~~ #### 創建ArticleSearch模型 ~~~ <?php namespace app\models; use Yii; use yii\base\Model; use yii\data\ActiveDataProvider; class ArticleSearch extends Article { public function rules() { public $author_name; // 只有在 rules() 的字段才能被搜索 return [ [['status', 'article_type_id'], 'integer'], [['title','author_name'], 'safe'], ]; } public function scenarios() { return Model::scenarios(); } public function search($params) { $query = Article::find(); //這里因為要調用author表進行作者名查詢,所以要用到joinWith $query->joinWith('author'); //在視圖中,會調用級聯的article_type表,調用他的分類名,所以為了性能,在這里join一下 $query->join('articleType'); //如果增加的字段需要表頭排序,則可加入以下代碼 $dataProvider->setSort([ 'attributes' => [ /* 其它字段不要動 */ /* 下面這段是加入的 */ /*=============*/ 'customer_name' => [ 'asc' => ['author.author_name' => SORT_ASC], 'desc' => ['author.author_name' => SORT_DESC], 'label' => '作者' ], /*=============*/ ] ]); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); // 加載搜索表單數據并驗證 if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere([ 'status' => $this->status, 'article_type_id' => $this->article_type_id, ]); //時間搜索,用戶在view上面輸入的是字符串的時間,而數據庫存放的是時間戳,需轉換匹配 if ($this->created_at) { $createdAt = strtotime($this->created_at); $createdAtEnd = $createdAt + 24*3600; $query->andWhere("created_at >= {$createdAt} AND created_at <= {$createdAtEnd}"); } // 通過添加過濾器來調整查詢語句 $query->andFilterWhere(['like', 'title', $this->title]) ->andFilterWhere(['like', 'author.name', $this->author_name]); return $dataProvider; } } ~~~ #### 控制器調用 ~~~ $searchModel = new ArticleSearch(); $dataProvider = $searchModel->search($_GET); return $this->render('view', [ 'dataProvider' => $dataProvider, 'searchModel' => $searchModel, ]); ~~~ #### 視圖顯示 ~~~ <?= GridView::widget([ 'dataProvider' => $dataProvider, //表格列值搜索功能,注意一定要配合attribute才會顯示 //$searchModel = new ArticleSearch(); 'filterModel' => $searchModel, 'options' => [ 'class' => 'grid-view table-responsive' ], 'columns' => [ 'id', //自定義搜索輸入框,比如增加“haha樣式”、和onclick事件 [ 'attribute' => 'title', 'filter' => Html::activeTextInput($searchModel, 'title', ['class' => 'form-control haha','onclick'=>'haha()']), ], //此處用到了$model的關聯數據,hasOne [ 'attribute'=>'author_id', 'value'=>function ($model) { return $model->author->name; } ], //【下拉框搜索1111】在搜索條件(過濾條件)中使用下拉框來搜索 [ 'attribute'=>'status', 'filter' => ['1'=>'可用','0'=>'不可用'] ], //or~~~~ [ 'class'=>\common\grid\EnumColumn::className(), 'attribute'=>'status', 'enum'=>[ '1' => '可用狀態', '0' => '禁用狀態', ] ], //or~~~~~ [ 'attribute'=>'status', 'filter' => Html::activeDropDownList($searchModel,'status',['1'=>'可用','0'=>'不可用'],['prompt'=>'全部','class'=>'form-control']) ], //【下拉框搜索2222】文章分類作為下拉框選項進行索引 [ 'attribute'=>'article_type', 'value'=>function ($model) { return $model->articleType->title; }, 'filter'=>\yii\helpers\ArrayHelper::map(ArticleType::find()->all(), 'id', 'title') ], 'created_at:datetime' ['class' => 'yii\grid\ActionColumn'] ] ]); ?> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看