【发布时间】:2019-12-11 14:45:27
【问题描述】:
我有一个使用此方法填充的 GridView::widget:
StabilimentiController.php
public static function getGridColumns($isMine = true, $readonly = false) {
$c = [
'denominazione',
[
'attribute' => 'provincia',
'value' => 'indirizzo.provincia',
'headerOptions' => ['class' => 'table-col-provincia'],
'contentOptions' => ['class' => 'table-col-provincia'],
],
[
'attribute' => 'created_by',
'value' => 'azienda.ragioneSociale',
'headerOptions' => ['class' => 'table-col-createdBy'],
'contentOptions' => ['class' => 'table-col-createdBy'],
]
];
return $c;
}
我在为 created_by 字段创建可搜索输入框时遇到了一些问题。
Created_by 在我的模型中被定义为整数,它是用于明确识别公司的代码 (azienda)。
在我的Stabilimenti.php 模型中,我有这个方法可以捕获它,然后使用 getGridColumns 方法中的 .notation 可以到达我感兴趣的 ragioneSociale 字段。
/**
* @return \yii\db\ActiveQuery
*/
public function getAzienda() {
return $this->hasOne(Azienda::className(), ['id' => 'azienda_id'])->inverseOf('stabilimenti');
}
输出是我想要的,唯一的问题是我的 GridView 中的可搜索字段将 int 代码而不是 ragioneSociale 字符串作为输入,并且不是非常用户友好。
在我的StabilimentiSearch.php
public function rules(){
return [
[['id', 'azienda_id', 'created_by', 'updated_by'], 'integer'],
[['denominazione', 'indirizzo', 'citta', 'localita', 'provincia', 'cap', 'produttore', 'utente', 'azienda' ], 'safe'],
array('ragioneSociale', 'safe', 'on'=>'search'),
];
我将ragioneSociale 设置为安全且带有搜索选项,但我在将其正确绑定到 inputBox 时遇到了一些困难。
【问题讨论】: