2010-05-11 1 views
0

У меня есть следующие таблицы в базе данных:Kohana ORM Aliasing и "Попытка получить имущество не-объект"

  • команды:
    • ID
    • имя
  • спичек:
    • ID
    • team1_id
    • team2_id

Я определил следующие ORM модели в моем Kohana v2.3.4 применения:

class Match_Model extends ORM { 
    protected $belongs_to = array('team1_id' => 'team', 'team2_id' => 'team'); 
} 

class Team_Model extends ORM { 
    protected $has_many = array('matches'); 
} 

Следующий код в контроллере:

$match = ORM::factory('match',1); 
echo $match->team1_id->name; /* <-- */ 

Крыло следующее сообщения об ошибке на Линке обозначенного /* <--- */:

Попытки получить свойство необъектного

Каркаса дающего значения внешнего ключа вместо ссылки на экземпляр Match_Model, как это должно (давая свойства has_many и belongs_to).

Я что-то упустил?

Примечание: Только в случае, я добавил нерегулярные множественного числа 'match' => 'matches' в приложении/Config/inflector.php

+1

Вы используете КО2 или KO3? Я не знаю KO2 очень хорошо, но в KO3 эти экземпляры vars добавляются под знаком подчеркивания (то есть _belongs_to, _has_many). –

+0

Спасибо. Я добавил версию kohana к вопросу. – mmutilva

+1

вы пробовали 'print_r' на' $ match', чтобы увидеть, что именно находится в этой переменной? – Zack

ответ

0

РЕШИТЬ! Kohana сообщество дало мне answer:

Правильное значение для $ belongs_to недвижимость:

class Match_Model extends ORM { 
    protected $belongs_to = array('team1' => 'team', 'team2' => 'team'); 
} 

documentation утверждает, что:

class Blog_Post_Model extends ORM { 
    protected $belongs_to = array('author' => 'user', 'editor' => 'user'); 
} 

В таблице базы данных blog_posts бы теперь есть 2 столбца, blog_posts.author_id и blog_posts.editor_id, и оба значения имеют значения, которые существуют в users.id.

Кажется, что я пропустил эту линию, :)