DBIx :: Класс базового класса результатов - PullRequest
2 голосов
/ 20 марта 2011

Я пытаюсь создать модель для Catalyst, используя DBIx :: Class :: Schema :: Loader. Я хочу, чтобы у классов результата был базовый класс, к которому я могу добавить методы. Таким образом, MyTable.pm наследуется от Base.pm, который наследуется от DBIx :: Class :: core (по умолчанию).

Почему-то я не могу понять, как это сделать. Мой сценарий создания ниже, кто-нибудь может сказать мне, что я делаю неправильно? Сценарий создает мою модель нормально, но все классы набора результатов просто наследуются от DBIx :: Class :: core без моего базового класса между ними.

#!/usr/bin/perl

use DBIx::Class::Schema::Loader qw/ make_schema_at /;

#specifically for the entities many-2-many relation
$ENV{DBIC_OVERWRITE_HELPER_METHODS_OK} = 1;

make_schema_at(
    'MyApp::Schema',
    { 
        dump_directory          => '/tmp',
        debug                   => 1, 
        overwrite_modifications => 1, 
        components              => ['EncodedColumn'],  #encoded password column
        use_namespaces          => 1,
        default_resultset_class => 'Base'

    },
    [ 'DBI:mysql:database=mydb;host=localhost;port=3306','rob', '******' ],
);

1 Ответ

2 голосов
/ 20 марта 2011

Похоже, что вы просто хотите добавить в result_base_class (и, возможно, сбросить default_resultset_class) -

env DBIC_OVERWRITE_HELPER_METHODS_OK=1 \
   dbicdump \
   -o result_base_class="FullNameOf::Base" \
   -o debug=1 \
   -o dump_directory=./tmp \
   -o components='["EncodedColumn"]' \
   -o use_namespaces=1 \
   -o overwrite_modifications=1 \
   "DBI:mysql:database=mydb;host=localhost;port=3306" \
   rob "******"

Обновление, соответствующий документ: DBIx :: Class :: Schema ::Loader :: Base # result_base_class .

...