{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('username',$this->username,true);
$criteria->compare('password',$this->password,true);
$criteria->compare('salt',$this->salt,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('company',$this->company,true);
$criteria->compare('profile',$this->profile,true);
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
));
}
Nel tuo caso, credo sia meglio mettere mano al metodo search.
public function actionAdmin()
{
$model=new User('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['User']))
$model->attributes=$_GET['User'];
$this->render('admin',array(
'model'=>$model,
));
}
Se noti questa action carica il model User con il parametro search. Non ne sono sicuro ma credo tu debba mettere mano a quello del tipo:
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('username',$this->username,true);
$criteria->compare('password',$this->password,true);
$criteria->compare('salt',$this->salt,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('company',NOME_COMPAGNIA,true);
$criteria->compare('profile',$this->profile,true);
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
));
}
Ci posteresti qui la tua soluzione? Non per ficcare il naso nel tuo codice, ma per condividerla con chi arriverà qui a leggere questo post e potrà trovarla. Se sbirci tra gli utenti di questo forum, scopri che c’è una quantità enorme di persone che si registra, legge, e non scrive quasi mai un post. Per loro, dobbiamo preoccuparci di postare anche le nostre soluzioni così da aiutarli e dare il nostro supporto a tutti.
Nel models ho inserito come mi avevi detto quel codice solo che non mi veniva perchè non era una costante ma era relativa all’utente con cui mi loggavo.
Ho risolto in questo modo…
public function searchhold()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$ushold=$this->thisUser();
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('username',$this->username,true);
$criteria->compare('password',$this->password,true);
$criteria->compare('salt',$this->salt,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('company',$ushold->company,true);
$criteria->compare('profile',$this->profile,true);
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
));
}