【发布时间】:2015-08-13 04:42:50
【问题描述】:
我想优化我的网站的速度并在一个查询中获取所有数据,包括我的关系(选择)字段数据。该怎么做?
低于我目前的发现:
我注意到在执行$pod->field('relational_field'); 时会运行一个额外的查询。
假设一个 pod 有一个 name 字段 和一个 categories 字段,这是 relational(选择):
// This code below will behave unexpected
$pod = pods( 'pod', array(
'where' => array(...),
'select' => array('t.name', 'category.name AS category_name')
));
假设你创建了一个Pod item链接到两个类别,你会得到两个结果,因为select选项中有category.name AS category_name。如果您为 pod 分配了一个类别,您将得到一个结果。
结果如下:
array (size=2)
0 =>
object(stdClass)[2928]
public 'name' => string 'My pod 1' (length=8)
public 'category' => string 'Category 1' (length=10)
1 =>
object(stdClass)[2929]
public 'name' => string 'My pod 1' (length=8)
public 'category' => string 'Category 2' (length=10) // <-- The difference is only in category
我真正想要的是那个'category'键中的两个类别的数据作为一个数组。这可能吗?
(原发于Pods.io)
【问题讨论】:
-
这里有一个如何在 Pod 精细参数中使用 SELECT 的详细示例:github.com/pods-framework/pods-code-library/blob/master/example/…
-
嗨@JPollock,谢谢,但这正是我正在做的事情,如您所见,我得到了意想不到的结果。这是一个错误吗?如果你愿意,我会在 Github 上开一个 issue。
-
是的,请打开一个问题。如果它是一个错误,那么它属于 GitHub 而不是 SO。顺便说一句,获得 Pods 支持的最佳地点是 Pods Slack。 Pods.io/chat
-
GitHub 问题已打开:github.com/pods-framework/pods/issues/3061 但它已经关闭,标签为 Support ;-)