Ho, purtroppo, la necessità di fare una query cross-db.
Il mio model Ordini ha questa relazione
'cliente' => array (self::BELONGS_TO, "Cliente", 'id_cliente'),
Funziona benissimo nella admin view, dove c’è la solita CGridView impostata così
array (
'name' => 'customer_search',
'value' => '(isset($data->cliente)
? $data->cliente->nome
: "")',
),
In questo caso, dato che desidero poter effettuare anche il filtro per nome cliente ho fatto così: ho creato dentro al model Ordini la variabile pubblica ‘customer_search’ (la classica via di fuga per le ricerche in tabelle correlate)
public $customer_search;
...
e nelle rules
array('customer_search', 'safe', 'on' => 'search'),
Questo è il codice del search()
if ($this->customer_search) {
$criteria->with[] = "cliente";
$criteria->compare('cliente.nome', $this->customer_search, true);
}
Quando però cerco di filtrare la colonna (digitando del testo nella casella del filtro nella view admin) ottengo questo errore
ed è vero perchè cliente sta in, diciamo, ‘db_del_cliente.tbl_cliente’.
Il lazy loading effettuato in fase di rendering della cgridview funziona perchè viene effettuata una query non cross_db, ma coma faccio per far funzionare la ricerca?
Immagino di poter / dover indicare il nome del db da qualche parte, ma dove?