如何通过引用的术语值查询节点(通过EntityFieldQuery)? -- taxonomy-terms 领域 和 database 领域 drupal 相关 的问题

How to query Nodes by a referenced Term Value (via EntityFieldQuery)?


3
vote

问题

中文

我必须根据不同的字段条件查询我的内容类型(FIRM_UNIT),并且对于我来使用 EntityFieldQuery 。

  $query = new EntityFieldQuery;  $query   ->entityCondition('entity_type', 'node')   ->entityCondition('bundle', $type = 'firm_unit')   ->propertyCondition('status', 1);   

当我想在直接内容字段上查询条件时,这很好,如下所示:

  $query->fieldCondition('field_name', 'value', $keyword, 'CONTAINS'); $query->fieldCondition('field_sector', 'value', $sector, '=');   

似乎无法直接访问,然后通过引用的内容查询,如引用术语的名称/标题和字段(它可以访问其TID)。

这是我可以根据术语引用的值查询我的节点内容的方式?

我应该先查询tid(是_taxonomy_get_tid_from_term func正确使用?),然后查询这样的内容?

  $my_tid = _taxonomy_get_tid_from_term ($term_to_match);<br/> $query->fieldCondition('term_fieldname', 'tid', $my_tid);   
英文原文

I have to query my content types (firm_unit) based on different fields conditions, and for that I came to use EntityFieldQuery.

$query = new EntityFieldQuery;  $query   ->entityCondition('entity_type', 'node')   ->entityCondition('bundle', $type = 'firm_unit')   ->propertyCondition('status', 1); 

This is nice when I want to query conditions on direct content fields, like these:

$query->fieldCondition('field_name', 'value', $keyword, 'CONTAINS'); $query->fieldCondition('field_sector', 'value', $sector, '='); 

It seems to be unable to directly access, and then query by, referenced contents, like names/titles and fields of referenced terms (it just can access their tids).

Which is then the way I may query my node contents based on term referenced values?

Should I query the tid before (is the _taxonomy_get_tid_from_term func the proper to use?), and then query the content like this?

$my_tid = _taxonomy_get_tid_from_term ($term_to_match);<br/> $query->fieldCondition('term_fieldname', 'tid', $my_tid); 
     

回答列表

1
 
vote

您应该使用CaCaonomy_get_term_by_name()函数。

  $terms = taxonomy_get_term_by_name($your_term_name); $tid = $terms[0]->tid; // Assuming you have one term with that name.   

您的查询将包含:

  $query->fieldCondition('term_fieldname', 'tid', $tid);   

所以基本上你的问题已经包含了答案。

 

You should probably use the taxonomy_get_term_by_name() function.

$terms = taxonomy_get_term_by_name($your_term_name); $tid = $terms[0]->tid; // Assuming you have one term with that name. 

Your query would then contain:

$query->fieldCondition('term_fieldname', 'tid', $tid); 

So basically your question contains the answer already.

 
 
1
 
vote

EntityFieldQuery 不能,因为您已经注意到加入表,因为它可能会对连接的后端运行查询,其中连接没有意义。

你需要在代码中弥合这个差距,这就是你自己的建议在做什么,它看起来很好。

但是,如果您不打算在MongoDB或某种程度上运行,我的个人偏好将是Ditch 99887665 ,支持与 db_select 而不是。这主要是因为mysql提供了酸,而所有的"No-SQL" DB的需要至少打破其中一个。
 

EntityFieldQuery can not, as you have noticed JOIN tables, because it may run queries against a backend where JOIN does not make sense.

You will need bridge this gap in code, which is what your own suggestion is doing, it looks fine to me.

However, if you don't intend to run on MongoDB or some such, my personal preferance is would be to ditch EntityFieldQuery in favor of a SQL-query with db_select instead. This mostly because MySQL provides the ACID, while all the "no-sql" db's needs to break atleast one of those.

 
 
       
       

相关问题

14  如何用斜杠将分类分类层次分类  ( How to separate taxonomy hierarchy in pathauto with slashes ) 
pathauto 似乎具有不同的别名分类学层次结构。 从分类菜单: 分类&gt;汽车&gt;阿斯顿马丁&gt; DB9 Coupe 分类&gt;乔布斯&gt;会计 我想要的是这个网址的东西: 分类广告/作业/会计(不是会计工作 - 分类) (请注意,Pathautho也以反向顺序使用破折号生成此。)...

11  如何获得当前分类学期术语的分类学期名称.TPL.php?  ( How do i get the taxonomy term name of the current taxonomy term page tpl php ) 
im在d7上。我试图获取我正在进行的分类页的分类学期名称。由于我不在"节点" 页面上,我无法通过$ node-&gt来获得它。tid。我应该怎么办? 谢谢。 ...

1  显示分类学术语的儿童  ( Show children of a taxonomy term ) 
我利用了视野:"分类学术语" 。是否有一种简单的方法来展示一个术语的孩子,旁边的节点掌握这个术语? 示例: Cars - Volvo --- Family_cars --- Sports_cars - Honda --- Parts --- ... Trucks - ... 当您看到"汽车" 页面时,我想显...

1  需要“管理分类”,以使用户选择一个术语  ( Administer taxonomy is needed to make a user select a term ) 
我需要一个用户从给定词汇中选择一个术语,但如果我为它们启用"管理分类" ,则该字段仅适用于普通用户。有没有解决的办法?我不应该使用分类吗? ...

3  使用视图曝光过滤器显示特定分类项的所有儿童  ( Show all children of a specific taxonomy term using views exposed filters ) 
我有一个公开过滤器的视图,检查具有特定术语的节点。如果选择父项,我似乎无法找到一个术语的所有子项的选项。 例如,我将概述词汇: Parent 1 - Child 1 - Child 2 - Child 3 - Another child Parent 2 - Child again 如果我选择...

0  从词汇过滤词汇  ( Filter vocabulary from vocabulary ) 
我有几个词汇;让我们假设他们是以下的: v1,v11,v12,v13 V2,v21,v22,v23 v3,v31,v32,v33 我有一个产品类别。当您按下产品类别时,我希望出现一个页面显示上述词汇表的下拉菜单,并下降包含其条款。 如何从单击产品类别中调用此页面? 现在我要解决的主要问题是出现包含...

6  将字段添加到词汇本身  ( Add field to vocabulary itself ) 
我有一个我想在词汇表中添加字段的情况。换句话说,我需要一个正常出现在 $did0 的形式上的可编辑字段,而不是在词汇表中出现每个术语的字段。不幸的是, $did1 $did1 $did2 的列对于我需要的东西而言过于有限。 是什么最好的方法?如果可能的话,我想避免使用自定义模块进行自定义表,用于词汇编辑页面的形式...

3  菜单块:展开这棵树的所有子项 - 忽略?  ( Menu block expand all children of this tree ignored ) 
是使用分类菜单+菜单块的任何人?我有一个问题设置 Expand all children of this tree ,因为它似乎完全被忽略了。我的侧栏分类学菜单列出所有儿童扩展,无论设置值如何。 因为我没有看到项目的问题队列中的问题,我认为这可能只是一个地方问题。可能是我忽略了一些可能导致的模块。 请为您的见解,请。...

1  如何在视图中使用上下文过滤器正常工作的分类菜单?  ( How to get taxonomy menu working properly with contextual filters in views ) 
我无法使用视图中的上下文参数正常工作的分类菜单链接。 这就是我所做的: 0)我创建一个名为:目录菜单 1)我创建一个名字称为:目录术语以及在分类菜单区域中,我设置了菜单位置的目录菜单(我已经启用了分类菜单模块,允许我这样做) 2)我的目录词汇表我添加了2个术语: cars 和手机 3)在admin / ...

21  如何在其层次结构中显示术语中的术语?  ( How to show terms in a views in its hierarchical structure ) 
我创建了一个视图,以显示产品词汇表的条款。 我的视图: 格式: html列表 show:字段 字段:分类学期:名称 工作正常,但它丢失了层次结构。 产品词汇具有这种结构: - 汽车 - ford - 沃尔沃 - 计算机 - 桌面 - 笔记本电脑 但在视图中,术语丢失了层次结...

0  使用视图钻取分类节点计数  ( Drill down taxonomy node count using views ) 
我不知道是我是唯一一个拥有这个问题的人,但我的问题似乎很常见。我只是找不到这里的解决方案和谷歌。 我的网站有分类菜单: 分类广告 电子产品 autos 乔布斯 会计 信息技术 我只想向有孩子的每个术语展示摘要。例如,当您单击分类时,它应该如下所示: 电子(160) autos(310) 当您单击autos(3...

3  商业 - 观点 - 分类 - 加入购物车问题  ( Commerce views taxonomy add to cart issue ) 
我正在使用Drupal Commerce构建电子店。使用分类和分类菜单,我已安排了我的产品和子类别。一切都很好。我还创建了一个视图,它显示子类别的项目,其中"添加到购物车" 表单作为字段。 单击"添加到购物车" 按钮 do 将物品添加到购物车。 购物车的块是,被配置为将每个行项目链接到它的显示路径。 此处发生问题:从...

0  推荐的分类法/目标网站  ( Recommended taxonomy structure for destinations site ) 
我正在建立一个网站,主要是捕获关于世界各地不同目的地的详细信息的主要目标。使用Drupal 7这样的东西的推荐场地结构是什么? 到目前为止,我想象:我的节点将是一个自定义位置类型,位置的详细信息拓展了使用字段。然后,我将位置层次结构复制到分层词汇(Continent&gt; country&gt; city等)中,...

1  Drupal 7.12:单个视图中的多个分类词汇过滤器  ( Drupal 7 12 multiple taxonomy vocabularies in a single view exposed filter ) 
我的一位同事正在为部门商店的项目工作。她想创建一个观看分类丢失过滤器,具有多个(7)个词汇表。词汇名称应出现在下拉菜单中,但不应选择。一些词汇及其术语如下。 鞋 - 凉鞋,鞋子,靴子,泵等 裤子 - 栗斯,牛仔裤,底部 T恤 - Polo衫,Polo Neik Tops等等 连衣裙 - Maxi,Ballgow...

3  多个词汇术语过滤器?  ( Multiple vocabulary terms filter ) 
我有一个称为类别的词汇,另一个名为作者的词汇和内容类型是视频。我想按类别的词汇术语展示所有作者(独特)? 可以请任何人建议我如何使用视图实现这一目标? ...

17  如何隐藏“管理字段”和“管理显示”选项卡  ( How to hide manage fields and manage display tabs ) 
我正在使用Drupal 7的网站,我正在研究分类学的权限。我想给网站维护者一个管理词汇的中央位置,并添加条款,对术语等进行排序,所以我在分类学下的"管理词汇和条款" 的唯一作用。然而,这导致了不需要的复杂性,主要是它让它们访问创建新字段并管理其显示("管理字段" 和"管理显示" 选项卡)。 是否有一种方法可以让它们访...

0  将多个块视图合并到单个跳转菜单  ( Merge multiple block views to a single jump menu ) 
我想实现一个跳转菜单,其中包含由每个词汇名称分组的三个不同词汇表项的列表。如果我只制作一个视图,所有这些术语都会正确显示,但我希望通过他们的词汇名称分组。如果我可以使用每个词汇表可以合并三个不同的视图,我可以获得此结果。 这是可能的吗? ...

6  如何在特定词汇表中授予编辑术语的角色权限[已关闭]  ( How to grant a role permission to edit terms in a specific vocabulary ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

2  分类法  ( Taxonomy fields ) 
在Drupal 6中,是否有一种简单的方法可以将字段添加到分类术语,其中我可以将它们用作视图中的标志?像一个术语上的"隐藏" 字段一样,这样它被视图呈现出来了? ...

2  显示给定分类学术语的相关术语的视图  ( Show a view of related terms to a given taxonomy term ) 
如何创建视图并仅显示与您当前正在查看的术语相关的分类术语(术语ID中的术语)?我尝试了一些关系和参数配置,但似乎无法简单地将相关术语列出到被查看的术语。 编辑:我通过核心分类界面相关的术语。 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.