Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Работа с Idiorm


Автор: Guedda 9.7.2012, 10:10
Добрый день, уважаемые. 

Столкнулся со следующей проблемой. Дали мне проект, в котором используется Idiorm (Paris). Мне необходимо создать метод, используя эту ORM.
И проблема в следующем: если я использую все методы ОРМ, которые мне нужны, сразу, то есть:
Код

$filters_tmp = ORM::for_table('test1')
                    ->inner_join('test2', array('m1.test1_id', '=', 'test1.id'), 'm1')
                    ->inner_join('test2', array('m1.test1_id', '=', 'm2.test1_id'), 'm2')
                    ->where('m1.name', 'Test')
                    ->where('m1.value', '1')
                    ->where('m2.name', 'Test 2')
                    ->where('m2.value', '1')
                    ->find_many();
        var_dump($filters_tmp);

Все выводится отлично, объект с данными, все данные норм. Но проблема состоит в том, что where может быть динамическое количество. Пытаюсь сделать так:
Код

$filters_tmp = ORM::for_table('test1');
$filters_tmp->inner_join('test2', array('m1.test1_id', '=', 'test1.id'), 'm1')
                    ->inner_join('test2', array('m1.test1_id', '=', 'm2.test1_id'), 'm2')
                    ->where('m1.name', 'Test')
                    ->where('m1.value', '1')
                    ->where('m2.name', 'Test 2')
                    ->where('m2.value', '1')
                    ->find_many();
        var_dump($filters_tmp);

И показывает мне пустой объект.

Может кто знает, как мне решить данную проблему?
Заранее благодарен за ответ.

Добавлено через 8 минут
Все решил.
надо было вместо 
Код

$filters_tmp->inner_join('test2', array('m1.test1_id', '=', 'test1.id'), 'm1')

написать что-то типа
Код

$result = $filters_tmp->inner_join('test2', array('m1.test1_id', '=', 'test1.id'), 'm1')

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)