Kohana ORM:根据外部表的值获取结果

Kohana ORM:根据外部表的值获取结果,orm,kohana-3,kohana-orm,Orm,Kohana 3,Kohana Orm,我配置了两种型号: taxonomies -id -name taxonomy_type -taxonomy_id -type_id *请注意,分类法类型不是透视表* 分类法可以有多个关联的类型 然后,我要做的是获取属于给定类型id的所有分类法。 这将是我将执行的SQL查询: class Model_Taxonomy{ protected $_has_many = array('types'=>array()); } class Model_Taxonomy_Type{ pr

我配置了两种型号:

taxonomies
 -id
 -name

taxonomy_type
 -taxonomy_id
 -type_id
*请注意,分类法类型不是透视表*

分类法可以有多个关联的类型

然后,我要做的是获取属于给定类型id的所有分类法。 这将是我将执行的SQL查询:

class Model_Taxonomy{
protected $_has_many = array('types'=>array());
}

class Model_Taxonomy_Type{
protected $_belongs_to = array('taxonomy' => array());
}
我试过这个:

SELECT * FROM taxonomies, taxonomy_type WHERE taxonomy_type.type_id='X' AND taxonomies.id=taxonomy_type.taxonomy_id

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

type\u id
列是分类法类型表的PK,对吗? 因此,您有一个(唯一的)
taxonomy\u类型
记录,只有一个相关的
taxonomy
对象(因为
属于
关系)。而不是您的:

获取所有属于 给定类型id

这将是一场灾难

获取给定类型id的分类法


type\u id
列是分类法类型表的主键,对吗? 因此,您有一个(唯一的)
taxonomy\u类型
记录,只有一个相关的
taxonomy
对象(因为
属于
关系)。而不是您的:

获取所有属于 给定类型id

这将是一场灾难

获取给定类型id的分类法

使用类似的方法:

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'
    )
  );
}
使用类似的方法:

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'
    )
  );
}

不完全是这样,taxonomy\u type表的PK都是type\u id和taxonomy\u id字段。所以我真的想得到所有分配了type\u id的分类法。因此,一个分类可以有多种类型,一个类型可以有多个分类。考虑Type ID作为一个简单的字段不是完全正确的,PythOnyLogyType表的PK都是字段Type ID和TraceMySyID。因此,我真的想要得到所有类型都具有Type ID的赋值。因此,分类可以有多种类型,类型可以关联多个分类。
$type = ORM::factory('taxonomy_type')
  ->where('type_id', '=', $type_id)
  ->find();

if( ! $type->taxonomies->loaded())
{
  types->taxonomies->find_all();
}