YII2 GridView資料小部件

2021-09-29 15:24:32 字數 3316 閱讀 4366

<?= gridview::widget([

'dataprovider' => $dataprovider,

'filtermodel' => $searchmodel,

'columns' => [

['class' => 'yii\grid\serialcolumn'],

['attribute'=>'id','contentoptions'=>['width'=>'5%']],

'username',

'nickname',

'realname',

'email:email',

['attribute'=>'created_at','format'=>['date','php:y-m-d h:i']],

['class' => 'yii\grid\actioncolumn',

],],

]); ?>

common/models/postsearch.php
public function search($params)

// grid filtering conditions

$query->andfilterwhere([

'id' => $this->id,

'status' => $this->status,

'type' => $this->type,

'created_at' => $this->created_at,

'updated_at' => $this->updated_at,

'created_by' => $this->created_by,

'updated_by' => $this->updated_by,

]);$query->andfilterwhere(['like', 'subject', $this->subject])

->andfilterwhere(['like', 'content', $this->content])

->andfilterwhere(['like', 'tag', $this->tag]);

return $dataprovider;

}

activedataprovider 繼承自 basedataprovider ,實現了 dataproviderinte***ce 介面。在此介面中擁有一下方法:

資料提供者 dataprovider 的自定義

$dataprovider = new activedataprovider([

'query' => $query,

//分頁

'pagination' => [

'pagesize'=> 2

],//排序

'sort'=>[

'defaultorder'=>['id'=>sort_desc],

'attributes'=>['id','title']

]]);

方式1

<?= gridview::widget([

'dataprovider' => $dataprovider,

'filtermodel' => $searchmodel,

'columns' => [

['class' => 'yii\grid\serialcolumn'],

['attribute'=>'id', 'contentoptions'=>['width'=>'5%']],

'post_id',

'status',

['attribute'=>'content','value'=>function($model)],

'url:url',

// 'email:email',

// 'remind',

// 'created_at',

// 'created_by',

['class' => 'yii\grid\actioncolumn'],

],]); ?>

/*字元擷取*/

public function getbegin()

檢視中直接使用

<?= gridview::widget([

'dataprovider' => $dataprovider,

'filtermodel' => $searchmodel,

'columns' => [

['class' => 'yii\grid\serialcolumn'],

['attribute'=>'id', 'contentoptions'=>['width'=>'5%']],

'post_id',

'status',

['attribute'=>'content','value'=>'begin'],

'url:url',

// 'email:email',

// 'remind',

// 'created_at',

// 'created_by',

['class' => 'yii\grid\actioncolumn'],

],]); ?>

1.屬性定義的格式

getter方法名以get開頭,get後跟屬性名。

setter方法名以set開頭,set後跟屬性名。

2.屬性的使用

定義好方法後即可像普通屬性一樣使用,但本質區別是當屬性被讀取時,對應的getter將被呼叫,而當屬性被賦值時,對應的setter也被呼叫。

3.注意問題

要使用getter和setter來定義屬性,類必須從 yii\base\object 或其子類繼承。此種方法不是只能用於模型類,只要是從 yii\base\object 類繼承的類都可使用。

若只定義getter而沒有setter的屬性是唯讀屬性對其賦值不會丟擲異常。

此種方法定義的屬性一般多數都是唯讀的,一般不用持久化儲存,多數是乙個業務邏輯需要的計算結果。

動作列的配置屬性

[

'class' => 'yii\grid\actioncolumn',

'buttons'=>[

$options = [

'data-confirm'=>yii::t('common','are you sure?'),

'data-method'=>'post',

'data-pjax'=>'0'

];return html::a('',$url,$options);}]

],

yii2GridView的簡單使用

初學yii2.0,用到gridview,翻閱官方文件,也沒怎麼看明白,自己慢慢摸索出來的,僅供參考 gridview widget dataprovider dataprovider,你傳過來的activedataprovider filtermodel searchmodel,columns cl...

YII2 Gridview 部分使用規則

yii提供了一套資料小部件 widgets 這些小部件可以用於顯示資料。detailview 小部件能夠用於顯示一條記錄資料,listview 和 gridview 小部件能夠用於顯示乙個擁有分頁 排序和過濾功能的乙個列表或者 1.頁面顯示的時間戳轉換 a.label 建立日期 attribute ...

yii2GridView的簡單使用

gridview widget dataprovider dataprovider,你傳過來的activedataprovider filtermodel searchmodel,columns class yii grid serialcolumn 第一列排序 sid 第二列,sid,與你查詢的m...