Привет тостер!.
У меня есть 3 поля для поиска данных
И два типа поиска данных первый это инпут куда пользователь может вписать название района сам, либо выбрать в существующий селектах.
Все пашет данные выводит. Но есть такой баг когда пользователь выберет город но не выберет район и потом нажмёт поиск то выведутся все районы всех городов а их куча. Должно быть, выбрал город вылезли все районы этого города.
Мне подсказали если пустое поле то в criteria задавай не существующий параметр
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('district_id',$this->district_id);
$criteria->compare('name_ru',$this->name_ru,true);
$criteria->compare('name_en',$this->name_en,true);
$criteria->compare('address_ru',$this->address_ru,true);
$criteria->compare('address_en',$this->address_en,true);
$criteria->compare('sort',$this->sort);
$criteria->compare('active',$this->active);
if(intval(Yii::app()->request->getParam('RefMahala',['district_id'=>null])['district_id']) <= null){ // проверка если пустой option в теге select
$criteria->compare('active', 4); // то я задаю не существующий параметр что вернет : нет результатов
};
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
Проверка работает на ура!
но если пользователь захочет вести сам название района и потом нажмёт поиск, то будут отправлены два $_POST - а 1 - это инпут 2 -селект с пустым option, если отправится пустой оптион сработает вот эта проверка
if(intval(Yii::app()->request->getParam('RefMahala',['district_id'=>null])['district_id']) <= null){
$criteria->compare('active', 4);
};
и выдаст нет результатов.
Вроде подробнее описал проблему, поможете решить ?