Salve ragazzi, in alcuni casi mi trovo ad utilizzare la gridview con delle query sql che estrapolano i dati da più tabelle, perdendo quindi la funzionalità dell’utilissima riga di ricerca collegata al filterModel.
Come posso in questi casi mantenere questa funzionalità?
In sintesi estrapoli dalla tua query i campi che dovrai filtrare facendoli diventare attributi del dataprovider.
Quindi
dichiari l’attributo
public $campofilter
aggiungi l’attributo nei rules()
[['campofilter'], 'safe'],
eventualmente definisci il sort della gridview quando si preme nella colonna
$dataProvider->sort->attributes['campofilter'] = [
// The tables are the ones our relation are configured to
// in my case they are prefixed with "tbl_"
'asc' => ['profile.rag_sociale' => SORT_ASC],
'desc' => ['profile.rag_sociale' => SORT_DESC],
];
4)fondamentale aggiungi la riga FilterWhere con il tuo attributo ed il suo effetto nella query