Страница 1 из 2

Редактирование списка объявлений в админке!

СообщениеДобавлено: 07 апр 2016, 11:03
propawn
Доброго времени суток! Собственно не могу разобраться, как сделать чтобы в разделе объявления сделать фильтр по цене, чтобы можно было искать объявления в админке по цене >= значению которое я укажу.

http://imgur.com/ODPJMot

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 07 апр 2016, 13:16
andipas
В файле protected/modules/apartments/models/Apartment.php

в правилах модели

array('city_id, owner_active, active, type, obj_type_id, ownerEmail, ownerUsername, searchPaidService, deleted, visits, owner_id, price', 'safe', 'on' => 'search'),

в функции public function search() { настройте правило

Код: Выделить всё

$criteria
->addCondition($this->getTableAlias() . '.price >= :price' ); 
$criteria
->params[':price'] = $this->price;
 


работать будет только с выключенным модулем сезонные цены, для работы фильтра с сезонными ценами доработок больше, можем сделать платно, обращайтесь через форму контактов

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 12 апр 2016, 00:24
propawn
Спасибо большое, только вопрос, теперь когда заходишь в объявления, пока не введешь какое-то число в поле Цена, не появляются объявления, как сделать чтобы появлялись?

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 12 апр 2016, 08:59
Xpycm
Навскидку.
Попробуйте обернуть в условие if ($this->price)
Т.е должно получиться так:
Код: Выделить всё
if ($this->price) {
    
$criteria->addCondition($this->getTableAlias() . '.price >= :price' ); 
    
$criteria->params[':price'] = $this->price;
} 

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 12 апр 2016, 12:10
propawn
Помогло, спасибо, еще вопрос:

Хочу сделать чтобы при введение в поле цена значения типа: 1000..3000

Строка делилась и объявления искались по цене от 1000 до 3000

Искал документацию на тему работы со строками в Yii и делением строки, но не нашел

Посредством PHP пытался сделать, но выдает ошибки

Код: Выделить всё
if ($this->price) {
            
$data->explode("..", params[':price']);
            
$criteria->addCondition($this->getTableAlias() . '.price >= :data[0] && .price <= :data[1]' ); 
            
$criteria->params[':price'] = $this->price;
        }  


Можете подсказать что не так делаю?

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 12 апр 2016, 12:37
Xpycm
Код: Выделить всё
$criteria->addCondition($this->getTableAlias() . '.price >= :data[0] && .price <= :data[1]' );  

Здесь мало того, что интерпрератор PHP выдаст ошибку, так ещё и ошибка запроса mySQL будет

И это:
Код: Выделить всё
$data->explode("..", params[':price']); 

в данном случае PHP совсем не понравится. Или может где-то есть объект $data с методом explode?

Наверное, стоит перед началом программирования ознакомиться с: http://php.net/manual/ru/ и http://www.mysql.ru/docs/

Код: Выделить всё
if ($this->price) {
            $data = explode("..", $this->price);
            $criteria->addCondition($this->getTableAlias() . '.price >= '.$data[0].' AND '.$this->getTableAlias() . '.price <= '.$data[1] ); 
        
} 

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 12 апр 2016, 12:39
propawn
Parse error: syntax error, unexpected '[' in C:\Denwer\OpenServer\domains\localhost\protected\modules\apartments\models\Apartment.php on line 482

На эту строку
Код: Выделить всё
$data->explode("..", params[':price']); 

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 12 апр 2016, 12:39
Xpycm
$data = explode("..", $this->price);

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 13 апр 2016, 11:44
propawn
Код: Выделить всё
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1

Теперь такая ошибка

Re: Редактирование списка объявлений в админке!

СообщениеДобавлено: 13 апр 2016, 13:23
Xpycm
Судя по всему одна скобка лишняя, или, может, сразу две

Мы можем реализовать вам функцию такого поиска платно. Обращайтесь: https://monoray.ru/contact