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属性的方法
包含很多有用的信息,关于什么是可能的,以及应该如何回答你的问题