У меня есть виджет GridView ::, который заполняется этим методом:
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
в моей модели определяется как целое число, это код, позволяющий однозначно идентифицировать компанию (азиенда).
В моей модели Stabilimenti.php
у меня есть этот метод, чтобы перехватить его, а затем с помощью.notation внутри метода getGridColumns Я могу получить доступ к полю 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.