1
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();

显然这不起作用,但我找不到有关如何执行此类查询的信息,所以我不知道。

4

2 回答 2

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();
}
于 2015-01-20T00:14:54.267 回答
0

type_idcolumn 是 taxonomy_type 表的 PK,对吗?因此,您有一个(唯一)taxonomy_type记录,并且只有一个相关taxonomy对象(因为belongs_to关系)。而不是你的:

获取属于给定类型 id 的所有分类法

这将是一个

获取给定类型 ID 的分类

于 2010-10-15T13:05:07.197 回答