我希望优化网站的速度,并在一个查询中获取所有数据,包括我的关系(选择)字段数据。怎么做?
目前为止我的调查结果如下:
我注意到在执行$pod->field('relational_field');
时会运行其他查询。
假设一个包含名称字段且类别字段的关系(选择):
// This code below will behave unexpected
$pod = pods( 'pod', array(
'where' => array(...),
'select' => array('t.name', 'category.name AS category_name')
));
假设您已创建链接到两个类别的一个Pod项目,您将获得两个结果,因为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
我真正想要的是该类别中的两个类别的数据&#39;键作为数组。这可能吗?
(最初发布于Pods.io)
答案 0 :(得分:1)
这很接近。选择&#39;参数应该是您提供给SQL SELECT子句的字符串,而不是字段数组。与&#39;在哪里&#39;相同参数,所以:
$pod = pods( 'pod', array(
'where' => 'where params as a string',
'select' => 't.name,category.name AS category_name')
));
使用field()
或display()
检索数据时,请使用别名&#39; category_name&#39;而不是点符号。