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

Проблема с ORM
http://forum.kohanaframework.su/viewtopic.php?f=33&t=187
Страница 1 из 2

Автор:  akul [ 16 май 2012, 17:54 ]
Заголовок сообщения:  Проблема с ORM

Код:
class Controller_Index_History extends Controller_Index {

    public function action_index() {
        $page_date = $this->request->param('history_date');
               
        $all_news = ORM::factory('new')->where('date', 'like','%'.$page_date.'%')->find_all();
       
        if (!$all_news->loaded()) $load=0;
               
        $content = View::factory('index/history/v_history_index', array(
            'all_news' => $all_news, 'load'=>load
        ));

Выдает ошибку: ErrorException [ Fatal Error ]: Call to undefined method Database_MySQL_Result::loaded()
хотя в другом контроллере метод loaded() работает нормально, никто не подскажет почему?

Автор:  mamahtehok [ 16 май 2012, 18:15 ]
Заголовок сообщения:  Re: Проблема с ORM

возможно модель не загрузилась, соответственно переменной _loaded нет.

попробуйте разить загрузку на несколкьо частей

Код:
$all_news = ORM::factory('new');
$all_news->where('date', 'like','%'.$page_date.'%');
$all_news->find_all();


возможно ошибка вывалится другая... и станет понятно куда капать.

Кстати для проверки кол-ва загруженных записей есть метож count_all, а loaded это проверка загрузки.

Автор:  akul [ 16 май 2012, 18:23 ]
Заголовок сообщения:  Re: Проблема с ORM

Спасибо! Вроде заработало)

Автор:  akul [ 16 май 2012, 18:30 ]
Заголовок сообщения:  Re: Проблема с ORM

хотя не совсем) ошибка не вываливается, но записи из БД не грузятся, а если так
Код:
$all_news = ORM::factory('new')->where('date', 'like','%'.$page_date.'%')->find_all();

то находит нужные записи

Автор:  mamahtehok [ 16 май 2012, 18:56 ]
Заголовок сообщения:  Re: Проблема с ORM

а в логах что нибудь пишется когда ошибка выпадает?

и да было бы хорошо взглянуть на модель.

Автор:  akul [ 16 май 2012, 19:08 ]
Заголовок сообщения:  Re: Проблема с ORM

в общем заработало только так
Код:
class Controller_Index_History extends Controller_Index {

    public function action_index() {
        $page_date = $this->request->param('history_date');
        $load=1; 
        $all_news = ORM::factory('new')->where('date', 'like','%'.$page_date.'%')->count_all();
        if ($all_news==0) $load=0;
       
        $all_news = ORM::factory('new')->where('date', 'like','%'.$page_date.'%')->find_all();
                       
        $content = View::factory('index/history/v_history_index', array(
            'all_news' => $all_news, 'load' => $load
        ));

а в виде уже переменная $load обрабатываеца, может как-то более компактно можно?

Автор:  mamahtehok [ 16 май 2012, 19:41 ]
Заголовок сообщения:  Re: Проблема с ORM

можно так

Код:
        $page_date = $this->request->param('history_date');
        $all_news = ORM::factory('new')->where('date', 'like','%'.$page_date.'%')->find_all();
        if ($all_news->conunt_all()==0) $load=0;
 

Автор:  akul [ 16 май 2012, 20:45 ]
Заголовок сообщения:  Re: Проблема с ORM

Код:
if ($all_news->conunt_all()==0) $load=0;

на этой строчке выдает ту-же ошибку об необъявленном методе count_all

Автор:  mamahtehok [ 16 май 2012, 20:59 ]
Заголовок сообщения:  Re: Проблема с ORM

ну да, логично. Я опечатался, а Вы скопировали %)))

count_all(), а не conunt_all()

Автор:  akul [ 17 май 2012, 11:33 ]
Заголовок сообщения:  Re: Проблема с ORM

нет, опечатку я конечно заметил, ошибку выдает именно: ErrorException [ Fatal Error ]: Call to undefined method Database_MySQL_Result::count_all() Как приводил пример выше, работает, а иначе никак) Не могу понять в чем дело, но времени нет, так что оставил пока так.

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