Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

ORM + переменная
http://forum.kohanaframework.su/viewtopic.php?f=33&t=249
Страница 1 из 1

Автор:  demyan112rv [ 17 июл 2012, 13:44 ]
Заголовок сообщения:  ORM + переменная

Необходимо реализовать фильтр при выводе товаров (к примеру, наличие\отсутствие изображения) Подскажите как реализовать. Пока что просто проверяю на наличие переданных данных методом ПОСТ. И затем добавляю строку запроса в переменную $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);
    }

Автор:  mamahtehok [ 17 июл 2012, 14:10 ]
Заголовок сообщения:  Re: ORM + переменная

эм, а почему бы не сделать вот так

Код:

$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();             
        }


Автор:  demyan112rv [ 17 июл 2012, 14:35 ]
Заголовок сообщения:  Re: ORM + переменная

mamahtehok писал(а):
эм, а почему бы не сделать вот так


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

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/