【发布时间】:2011-04-05 06:15:23
【问题描述】:
我正在使用 ORM 模块使用 Kohana 3.0.7 构建一个应用程序。我想构建一个对象,例如标签,其中可以标记许多不同种类的对象,并且这些选项可以有多个标签。例如,假设我有 3 个模型:标签、帖子和页面。我将如何构建表格和模型以使其发挥最佳效果?
【问题讨论】:
我正在使用 ORM 模块使用 Kohana 3.0.7 构建一个应用程序。我想构建一个对象,例如标签,其中可以标记许多不同种类的对象,并且这些选项可以有多个标签。例如,假设我有 3 个模型:标签、帖子和页面。我将如何构建表格和模型以使其发挥最佳效果?
【问题讨论】:
您将使用 Kohana 的 has-many-through 关系。一个例子是:
class Model_Page
{
protected $_has_many = array(
'tags' => array(
'model' => 'tag',
'foreign_key' => 'page_id',
'far_key' => 'tag_id',
'through' => 'pages_tags',
),
);
}
class Model_Post
{
protected $_has_many = array(
'tags' => array(
'model' => 'tag',
'foreign_key' => 'post_id',
'far_key' => 'tag_id',
'through' => 'posts_tags',
),
);
}
class Model_Tag
{
protected $_has_many = array(
'pages' => array(
'model' => 'page',
'foreign_key' => 'tag_id',
'far_key' => 'page_id',
'through' => 'pages_tags',
),
'posts' => array(
'model' => 'post',
'foreign_key' => 'tag_id',
'far_key' => 'post_id',
'through' => 'posts_tags',
),
);
}
【讨论】:
far_key