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

发布于 2024-09-27 23:33:50 字数 733 浏览 5 评论 0原文

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

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

taxonomies
 -id
 -name

taxonomy_type
 -taxonomy_id
 -type_id

I've configured two models:

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

class Model_Taxonomy_Type{
protected $_belongs_to = array('taxonomy' => array());
}

*Please note that taxonomy_type is not a pivot table.*

A taxonomy can have multiple types associated.

Then, what I'm trying to do is get all taxonomies that belong to a given type id.
This is would be the SQL query I would execute:

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

I've tried this:

$taxonomies = ORM::factory('taxonomy')
    ->where('type_id','=',$type_id)
    ->find_all();

Obviously this doesn't work, but I can't find info about how execute this kind of queries so I have no clue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

思念满溢 2024-10-04 23:33:50
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();
}
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'
    )
  );
}

And use some like that:

$type = ORM::factory('taxonomy_type')
  ->where('type_id', '=', $type_id)
  ->find();

if( ! $type->taxonomies->loaded())
{
  types->taxonomies->find_all();
}
春风十里 2024-10-04 23:33:50

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

获取属于某个的所有分类法
给定类型 ID

它将是

获取给定类型 ID 的分类

type_id column is a PK of taxonomy_type table, am I right?
So, you have one (unique) taxonomy_type record, and only one related taxonomy object (because of belongs_to relationship). Instead of your:

get all taxonomies that belong to a
given type id

it will be a

get taxonomy for a given type id

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文