taxonomies
-id
-name
taxonomy_type
-taxonomy_id
-type_id
我配置了两个模型:
class Model_Taxonomy{
protected $_has_many = array('types'=>array());
}
class Model_Taxonomy_Type{
protected $_belongs_to = array('taxonomy' => array());
}
*请注意,taxonomy_type不是数据透视表。*
分类法可以关联多种类型。
然后,我要做的是获取属于给定类型id的所有分类法。 这将是我将执行的SQL查询:
SELECT * FROM taxonomies, taxonomy_type WHERE taxonomy_type.type_id='X' AND taxonomies.id=taxonomy_type.taxonomy_id
我试过这个:
$taxonomies = ORM::factory('taxonomy')
->where('type_id','=',$type_id)
->find_all();
显然这不起作用,但我找不到有关如何执行此类查询的信息,所以我不知道。
答案 0 :(得分:1)
class Model_Taxonomy{
protected $_belongs_to = array(
'types' => array(
'model' => 'Taxonomy_Type',
'foreign_key' => 'taxonomy_id'
)
);
}
class Model_Taxonomy_Type{
protected $_has_many = array(
'taxonomies' => array(
'model' => 'Taxonomy',
'foreign_key' => 'taxonomy_id'
)
);
}
使用类似的东西:
$type = ORM::factory('taxonomy_type')
->where('type_id', '=', $type_id)
->find();
if( ! $type->taxonomies->loaded())
{
types->taxonomies->find_all();
}
答案 1 :(得分:0)
type_id
列是taxonomy_type表的PK,对不对?
因此,您有一个(唯一的)taxonomy_type
记录,并且只有一个相关的taxonomy
对象(因为belongs_to
关系)。而不是你的:
获取属于a的所有分类法 给定类型id
它将是
获取给定类型ID的分类