DBIx::Class
Catalyst アプリからの認証ユーザーに使用しようとしています。私が行った私の手順:
1) SQLite データベースを作成
CREATE TABLE people (
id integer primary key,
name text not null,
password text not null);
2) Catalyst モデル People を作成しました。
3) MyApp.pm で認証設定をセットアップする
__PACKAGE__->config('Plugin::Authentication' => {
default => { credential => {
class => 'Password',
password_field => 'password',
password_type => 'clear'
},
store => {
class => 'DBIx::Class',
user_model => 'People'
}
}
}
);
4) コントローラー認証を作成し、その中にメソッド ログインを設定します。
sub login : Local {
my ($self, $c) = @_;
if (my $user = $c->req->params->{user} and my $password = $c->req->params->{password} ) {
if ( $c->authenticate( { username => $user, password => $password } ) ) {
$c->res->body( "hello " . $c->user->get("id") );
} else {
# login incorrect
$c->res->body("Wrong pass or name!");
}
} else {
# invalid form input
$c->res->body("Type name & pass");
}
}
5) ユーザーとパスワードのデータを含むフォームが送信されると、login メソッドが呼び出されます。そして、私はこのメッセージを受け取りました:
/usr/local/share/perl/5.14.2/Catalyst/ で、MyApp::Controller::Auth->login で「パッケージ "MyApp::Model::People" を介して "オブジェクト メソッド "result_source" が見つかりません」で例外をキャッチしましたAuthentication/Store/DBIx/Class/User.pm 行 35、行 999."
どうすれば修正できますか?