0
Я пытаюсь узнать, как получить доступ и отобразить информацию. У меня есть категории, форумы, темы и сообщения. форумы относятся к категориям, темы принадлежат форумам, а сообщения относятся к темам. Я не знаю, как получить доступ к сообщениям.Kohana ORM Информация о доступе
Таблица:
categories {category_id, category_title}
forums {forum_id, forum_title}
categories_forums {id_category, id_forum}
topics {topic_id, topic_title}
forums_topics{id_forum, id_topic}
posts {post_id, post title}
topics_posts {id_topic, id_post}
Модель:
class Model_Category extends ORM {
protected $_primary_key = 'category_id';
protected $_has_many = array(
'forums'=> array(
'model' => 'forum',
'through' => 'categories_forums',
'far_key' => 'id_forum',
'foreign_key' => 'id_category'
),
);
}
class Model_Forum extends ORM {
protected $_primary_key = 'forum_id';
protected $_belongs_to = array(
'categories'=> array(
'model' => 'category',
'through' => 'categories_forums',
'far_key' => 'id_category',
'foreign_key' => 'id_forum'
),
);
protected $_has_many = array(
'topics'=> array(
'model' => 'topic',
'through' => 'forums_topics',
'far_key' => 'id_topic',
'foreign_key' => 'id_forum'
),
);
}
class Model_Topic extends ORM {
protected $_primary_key = 'topic_id';
protected $_belongs_to = array(
'forums'=> array(
'model' => 'forum',
'through' => 'forums_topics',
'far_key' => 'id_forum',
'foreign_key' => 'id_topic'
),
);
protected $_has_many = array(
'posts'=> array(
'model' => 'post',
'through' => 'topics_posts',
'far_key' => 'id_post',
'foreign_key' => 'id_topic'
),
);
}
class Model_Post extends ORM {
protected $_primary_key = 'post_id';
protected $_belongs_to = array(
'topics'=> array(
'model' => 'topic',
'through' => 'topics_posts',
'far_key' => 'id_topic',
'foreign_key' => 'id_post'
),
);
}
До сих пор я следующий:
foreach ($categories as $category) :
echo $category->category_title;
foreach ($category->forums->find_all() as $forum) :
echo $forum->forum_title;
$num_topics = $forum->topics->count_all(); echo $num_topics;
$num_posts = $forum->topics->posts->count_all(); echo $num_posts;
endforeach;
endforeach;
Проблема заключается в эхе $ NUM_POSTS показывает 0. Я предполагаю, что я Неправильное обращение к сообщениям. Как мне это сделать?
Это возвращает 1, даже если есть более или нет сообщений. – markerpower
'count ($ topic-> posts-> find_all() -> as_array())' тоже? @markerpower –
или '$ topic-> posts-> find_all() -> count()'? –