Relationship 为什么访问者不支持手动预取(通过选择/列)';多重';?

Relationship 为什么访问者不支持手动预取(通过选择/列)';多重';?,relationship,dbix-class,Relationship,Dbix Class,当我运行代码时: return $self->result_source->schema->resultset('Locality')->search( { 'addresses_view.usage' => 0 ,'me.id' => $self->id } ,{ join => { servers => 'addresses_view' }

当我运行代码时:

  return  $self->result_source->schema->resultset('Locality')->search(
      {
        'addresses_view.usage' => 0
        ,'me.id' => $self->id
      }
      ,{
        join => { servers => 'addresses_view' }
      }
    );
生成的下一个sql查询:

SELECT 
  "me"."id", "me"."active", "me"."priority", 
  "me"."country_id", "me"."name"
FROM "localities" "me"
LEFT JOIN "servers" "servers" ON "servers"."locality_id" = "me"."id" 
LEFT JOIN "pool_addresses_view" "addresses_view" ON "addresses_view"."server_id" = "servers"."id" 
WHERE ( ( "addresses_view"."usage" = ? AND "me"."id" = ? ) )
执行得很好

但当我想在“选择”中添加列时

    ,'+columns' => [ 'addresses_view.ip', 'addresses_view.id' ]
我收到错误:
访问器'multi'不支持手动预取(通过选择/列)

我在上找到了相同的qestion,但我不明白如何将columns属性传递给search_related以限制要选择的列

有没有办法将列添加到“SELECT”子句中?

只是一种在内部填充join和columns属性的方法

包含很多有用的信息,关于什么是可能的,以及应该如何回答你的问题