0

我想优化我的网站的速度并在一个查询中获取所有数据,包括我的关系(选择)字段数据。怎么做?

到目前为止,我的发现如下:

我注意到在执行$pod->field('relational_field');附加查询时会运行。

假设一个 pod 有一个name 字段和一个categories 字段关系的(pick):

// 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

我真正想要的是该“类别”键中的两个类别的数据作为数组。那可能吗?

(最初发布在Pods.io上)

4

1 回答 1

1

这很接近。'select' 参数应该是一个字符串,就像您将提供给 SQL SELECT 子句一样,而不是字段数组。与“where”参数相同,因此:

$pod = pods( 'pod', array(
   'where' => 'where params as a string',
   'select' => 't.name,category.name AS category_name')
));

当您使用field()or检索数据时display(),请使用别名“category_name”而不是点表示法。

于 2015-08-12T20:42:50.277 回答