2016-11-14 3 views
1

Mojolicious :: Plugin :: Modelを使用していますが、なぜアプリケーションにアクセスできないのかわかりません。Mojolicious :: Plugin :: Modelを使用して何か問題があります

簡略化されたコードの下に

のApp

package App; 
use Mojo::Base 'Mojolicious'; 

sub startup { 
    my $self = shift; 
    $self->plugin('Model'); 
    $r->get('/')->to('Premium#create') 
} 

コントローラ

package App::Premium; 
use Mojo::Base 'Mojolicious::Controller'; 
use App::Model::User; 

sub create { 
    my $self = shift; 

    my $user = App::Model::User->new(name => 'John doe'); 
    $user->create(); 
    $self->render(text => 'Ok'); 
} 

モデル

package App::Model::User; 
use Mojo::Base 'MojoX::Model'; 

sub create { 
    my $self = shift; 

    $self->app->mysql->db->query('...'); 
} 

しかし、モデルは、アプリメソッドにアクセスすることはできません...

答えて

2

コントローラー:

$self->model('User')->create(name => 'John doe'); 

モデル:

sub create { 
    my ($self, %attrs) = @_; 

    $self->app->mysql->db->query('...'); 
} 
+0

感謝デニス!すべて正常に動作しますが、 '$ self-> app-> session'は空です。コントローラからアクセスするとOKですが、モデルからはundefです... – tempus71

関連する問題