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