prefetch & +asした場合は+asのターゲットを定められるよ
グループ has_many ユーザーというのを例にします。
パスワードの長さを調べようと・・・
$schema->resultset('Group')->search(
{
},
{
prefetch => 'users',
'+as' => 'password_length',
'+select' => { length => 'users.password' },
}
);
とした場合、group->users->first->get_column('password_length') は例外になってしまいます。 正解は
$schema->resultset('Group')->search(
{
},
{
prefetch => 'users',
'+as' => 'users.password_length',
'+select' => { length => 'users.password' },
}
);
+asはDBICが解釈しやすいように、接頭辞を付けてあげられる。

コメントする