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

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 14 ноя 2018, 02:11

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Опять непонятки с этим ОРМ!
СообщениеДобавлено: 22 май 2013, 14:49 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Вот код:
Код:
public function name_unique($reference_name)
   {
      $referencetemp = ORM::factory('Reference')
         -> where('name', '=', $reference_name)
         -> reset(FALSE)
         -> find_all();
      
      if($referencetemp -> loaded())
      {
         return FALSE;
      }
      else
      {
         return TRUE;
      }
   }

Кохана выдает шибку:
Цитата:
ErrorException [ Fatal Error ]: Call to undefined method Database_MySQL_Result::loaded()
APPPATH/classes/Model/Reference.php [ 24 ]
19 $referencetemp = ORM::factory('Reference')
20 -> where('name', '=', $reference_name)
21 -> reset(FALSE)
22 -> find_all();
23
24 if($referencetemp -> loaded())
25 {
26 return FALSE;
27 }
28 else
29 {
{PHP internal call} » Kohana_Core::shutdown_handler()

В чем проблема?

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять непонятки с этим ОРМ!
СообщениеДобавлено: 22 май 2013, 15:20 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
что возвращает find_all() по твоему?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять непонятки с этим ОРМ!
СообщениеДобавлено: 23 май 2013, 10:36 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Спасибо за наводку, что б я без Вас делал WinterSilence!
Но опять проблема! Теперь запись не хочет обновляться! Вот код:
Код:
// Метод для редактирования справочника
   public function edit_reference($reference_id, $new_reference_name, $new_reference_description)
   {
      $editreference = ORM::factory('Reference')
         -> where('id', '=', $reference_id)
         -> reset(FALSE);
         
      $editreference -> name = $new_reference_name;
      $editreference -> description = $new_reference_description;
      
      try
      {
         $editreference -> save();
         return TRUE;
      }
      catch(ORM_Validation_Exception $e)
      {
         $this->errors = $e->errors('validation');
         return FALSE;
      }
      $this -> result = 'Последний вызванный метод edit_reference';
   }

В $reference_id передается айдишник справочника,
$new_reference_name - новое название справочника,
$new_reference_description новое описание справочника.

Код
Код:
$editreference = ORM::factory('Reference')
         -> where('id', '=', $reference_id)
         -> reset(FALSE);

выбирает нужный справочник, а
Код:
try
      {
         $editreference -> save();
         return TRUE;
      }
      catch(ORM_Validation_Exception $e)
      {
         $this->errors = $e->errors('validation');
         return FALSE;
      }


Сохраняет запись с новыми значениями.
В итоге, создается новая запись, вместо изменения старой. Что я делаю не так?

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять непонятки с этим ОРМ!
СообщениеДобавлено: 23 май 2013, 10:51 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
ты не читаешь мануалы как всегда, иначе ты бы знал почему не рекомендуют использовать save. и кстати если уж ты разорался для каких целей используется loaded() ?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять непонятки с этим ОРМ!
СообщениеДобавлено: 23 май 2013, 11:09 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Изменил строку:
Код:
$editreference -> save();

На
Код:
$editreference -> update();


Теперь выдает такую ошибку:
Цитата:
Cannot update reference model because it is not loaded.


Странно, видимо запись не получает. Буду разбираться...

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять непонятки с этим ОРМ!
СообщениеДобавлено: 23 май 2013, 14:36 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
loaded() проверят были ли загружены данные из БД. В общем разобрался. Все работает. Метод выглядит так:
Код:
// Метод для редактирования справочника
   public function edit_reference($reference_id, $new_reference_name, $new_reference_description)
   {
      $editreference = ORM::factory('Reference')
         -> where('id', '=', $reference_id)
         -> reset(FALSE)
         -> find();
   
      $editreference -> name = $new_reference_name;
      $editreference -> description = $new_reference_description;
      
      try
      {
         $editreference -> update();
         $this -> new_name = $new_reference_name;
         $this -> new_description = $new_reference_description;
         return TRUE;
      }
      catch(ORM_Validation_Exception $e)
      {
         $this->errors = $e->errors('validation');
         return FALSE;
      }
   }

_________________
Они плакали и кололись, но продолжали есть кактус!


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

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


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

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


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

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