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が解釈しやすいように、接頭辞を付けてあげられる。
コメントする