Filtrare in grid dupa mai multe coloane

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'];
    }

About

Das Yii Man

Categories: HINTS (tehnice) | Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

[TOP]