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 ответа
использование
ORM::factory('blogpost', $id)
или жеnew Model_Blogpost($id)
если вам нужен объект с PK == $id.Проверьте свою модель после загрузки.
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, конечно. Я могу ошибаться, и если да, можете ли вы сослаться на документацию, которая показывает этот тип взаимодействия моделей?