Mam dwie tabele, Domeny (id, domeny) i Users (id, users, domeny_id). Na podstawie poniższego kodu realizuje aby po wybraniu konkretnej domeny wyświetlało mi userów do niej przypisanych. Wszystko działa OK prócz wyszukiwania natomiast jak odkomentuje ‘criteria’=>$criteria, w CActiveDataProvider to wyszukiwanie działa ale za to po wybraniu domeny z tabeli users wywala mi wszystkie rekordy. Dane wyświetlam w widoku CGridView.
Poniżej kod z modelu Users oraz vidoku CGridView.
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('users',$this->users,true);
return new CActiveDataProvider('Users', array(
'criteria'=>array(
'condition'=>'domena_id LIKE :id',
'params'=>array(':id'=>$_GET['id']),
'with'=>array('domeny'),
),
// 'criteria'=>$criteria,
));
}
}
'condition'=>'domena_id LIKE %:id%',
'params'=>array(':id'=>$_GET['id']),
//albo na
'condition'=>'domena_id LIKE :id',
'params'=>array(':id'=>"%".$_GET['id']."%"),
P.S. Zawsze zapominam w jaki sposób to jest zaimplementowane w Yii
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->condition = 'domena_id LIKE :id';
$criteria->params = array(':id'=>"%".$_GET['id']."%");
$criteria->with = array('domeny');
$criteria->compare('users',$this->users,true);
$criteria->compare('id',$this->id);
return new CActiveDataProvider('Users', array(
'criteria'=>$criteria,
));
}
Mam jeszcze jeden problem, nie wiem jak zmusić kolumnę w CGridView aby nie przekraczała konkretnej szerokości, domyślnie jest, że jakby się długiego tekstu nie wrzuciło to rozwali go na pół ekranu Może ktoś wie jak to rozwiązać? próbowałem za pomocą htmloptions ale nieskutecznie.
Tabela w CGridView to AFAIK zwykła tabela HTML. A tak z kolei domyślnie łamie zbyt długie teksty wielolinijkowo. Sprawdź czy nie masz przypadkiem twardych spacji (nbsp) zamiast zwykłych i dlatego rozwala ci komórkę tabeli.