In grid cand vrei sa ai filtre pe mai multe coloane dintr-o tabela de legatura (ex. esti in Invoice view si vrei filtrare dupa nume, cif si adresa din Partner) ai nevoie in Select2 de un atribut diferit de partnerId.
'cif' => [
'attribute' => 'partnerIdCif',
'value' => function ($model) {
return "{$model->partner->cif}";
},
'format' => 'raw',
'label' => 'CIF',
'filter' => Select2::widget([
'model' => $searchModel,
'attribute' => 'partnerIdCif',
'data' => ArrayHelper::map(\common\models\Partner::find()->joinWith(['invoices'])->where(['invoice.companyId'=>Yii::$app->user->identity->currentCompanyId])->all(), 'id', 'cif'),
'options' => ['placeholder' => 'Select cif'],
'pluginOptions' => [
'allowClear' => TRUE
],
])
],
In SearchModel trebuie adaugata variabila
$partnerIdCif
iar dupa incarcarea parametrilor
if(@$params['InvoiceSearch']['partnerIdCif']){
$this->partnerId=$params['InvoiceSearch']['partnerIdCif'];
}
Categories: HINTS (tehnice) | Tags: params, searchModel
Leave a Reply
[TOP]