视图中id列搜索框的显示 [ 2.0 版本 ]
使用自动Crud生成代码能够很方便的搭建脚手架,但是美中不足的是id项没有搜索框,这很难受
在index 视图中调GridView 配置'id',成 id:integer
不行,调整顺序也不行。找不出原因,本人追一下代码
GridView -> renderTableHeader() -> renderFilters() -> DataColumn->renderFilterCell -> renderFilterCellContent()
到此 renderFilterCellCentent()
内有判断 $model->isAttributeActive($this->attribute)
,也就是‘id’属性是不是活动的属性,什么是活动的属性?
再追
model->activeAttributes() -> scenarios()
也就是定义了场景的属性是活动的属性
而自动生成的场景是空的
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
父级场景会自动调用 getValidators()
验证器内的属性,而验证器内的属性就是规则 rules()
,而规则里面确实没有‘id’
因此在规则里面加上id
的规则即可
也就是,搜索模型的属性,至少有一条规则与之匹配,如果定义该场景下的规则,会使用该场景下的规则,否则使用所有规则。
在搜索模型中添加
public function rules()
{
$rules=[
[['id',],'integer'],
];
return array_merge($rules,parent::rules());
}
看看效果
已经添加上了!
lbmzorx
注册时间:2017-10-20
最后登录:2024-01-29
在线时长:189小时41分
最后登录:2024-01-29
在线时长:189小时41分
- 粉丝6
- 金钱15240
- 威望100
- 积分18130
共 0 条评论