Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 20:40

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: ORM + переменная
СообщениеДобавлено: 17 июл 2012, 13:44 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 июн 2012, 12:31
Сообщения: 46
Необходимо реализовать фильтр при выводе товаров (к примеру, наличие\отсутствие изображения) Подскажите как реализовать. Пока что просто проверяю на наличие переданных данных методом ПОСТ. И затем добавляю строку запроса в переменную $orm. Но потом не знаю как ее прикрутить к запросу
Код:
public function action_index() 
    {   
        $orm = '';
        if(isset($_POST['filter_submit']))
        {       
            if(!empty($_POST['filter_name']))
            {
                $name = $_POST['filter_name'];
                $orm .= "->where('name', '=', $name)";
            }
           
            switch($_POST['filter_main_image'])
            {
                case 1:
                    $orm .= "->where('main_image','!=','')";
                    break;
                case 2:
                    $orm .= "->where('main_image','=','')";
                    break;             
            }
           
      // Как здесь прикрутить переменную $orm перед find_all()
            $products = ORM::factory('product')->find_all();             
        }
        else
        {
            $count = ORM::factory('product')->count_all();
            $pagination = Pagination::factory(array(
                    'total_items' => $count,
            ));

            //Вывод из БД записей
            $products = ORM::factory('product')
                    ->limit($pagination->items_per_page)
                    ->order_by('id', 'desc')
                    ->offset($pagination->offset)
                    ->find_all();
        }
               
        $content = NULL;
    $content = View::factory('admin/a_products/va_products_index')
      ->bind('products', $products)
                ->bind('pagination', $pagination);

        // Выводим в шаблон
        $this->template->page_title = 'Продукты';
        $this->template->block_center = array($content);
    }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM + переменная
СообщениеДобавлено: 17 июл 2012, 14:10 
Не в сети
Бывалый

Зарегистрирован: 16 апр 2012, 19:44
Сообщения: 113
эм, а почему бы не сделать вот так

Код:

$products = ORM::factory('product')
        if(isset($_POST['filter_submit']))
        {       
            if(!empty($_POST['filter_name']))
            {
                $name = $_POST['filter_name'];
                $products->where('name', '=', $name);
            }
           
            switch($_POST['filter_main_image'])
            {
                case 1:
                    $products->where('main_image','!=','');
                    break;
                case 2:
                    $products->where('main_image','=','');
                    break;             
            }
           
      // Как здесь прикрутить переменную $orm перед find_all()
            $products->find_all();             
        }



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ORM + переменная
СообщениеДобавлено: 17 июл 2012, 14:35 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 июн 2012, 12:31
Сообщения: 46
mamahtehok писал(а):
эм, а почему бы не сделать вот так


Так получается пустой запрос у меня


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group