Kohana 3.2 ORM не содержит информацию о модели

Я работаю с Kohana 3.2 и у меня есть следующий код в моем контроллере.

  $Blog_Post = new Model_Blogpost();

  $Blog_Post->where('id', '=', 1);
  $Blog_Post->find();

  $content = $Blog_Post->content;

В настоящее время у меня есть 3 записи в моей базе данных с идентификаторами 1, 2 и 3.

$ Blog_Post-> content или любое другое поле возвращает значение null. и я не уверен почему.

2 ответа

Решение
  1. использование ORM::factory('blogpost', $id) или же new Model_Blogpost($id) если вам нужен объект с PK == $id.

  2. Проверьте свою модель после загрузки.

  if $Blog_Post->loaded()
  {
       // it works!
  }
  else
  {
       // record not found
  }

Если запись не найдена, вы можете увидеть последний запрос БД с $Blog_Post->last_query()

UPD. Из комментариев. Ваша модель не будет работать с этими модификациями. Обратите внимание, что данные ORM хранятся в $_object собственность и $Blog_Post->content это просто ярлык для $Blog_Post->_object['content'] с помощью __get() метод. Конечно, если вы определяете общественность $content имущество, $Blog_Post->content вернет значение NULL вместо использования данных БД.

Нет смысла определять поля модели как свойства. Если вам нужны подсказки IDE, просто используйте PHPDOC.

В фирме, в которой я работаю, мы рассматривали возможность обновления до 3.2 совсем недавно. Однако в нашей оценке я не помню, чтобы мы видели разницу в методах обработки ORM. Ваш выше выглядит так, как будто это должно быть примерно так:

  $Blog_Post = ORM::factory('blogpost')->where('id', '=', 1)->find();

  $content = $Blog_Post->content;

Предполагая, что ваша таблица называется blogposts, конечно. Я могу ошибаться, и если да, можете ли вы сослаться на документацию, которая показывает этот тип взаимодействия моделей?

Другие вопросы по тегам