[Catalyst] Not getting passed arguments in $c->user methods
Steve Cayford
cayfo001 at umn.edu
Mon Jan 8 23:55:33 GMT 2007
Hi,
I'm fairly new with Catalyst, so please forgive me if this is obvious.
I'm using a DBIx::Class "Person" class for the authentication store.
I've extended this Person class using a custom component. (This is
running on mod_perl 1.29 and Apache 1.3.33 on Debian stable.)
That all works well enough, I can access the class and its methods via
$c->user. However, the methods are not getting any arguments other than
$self.
In a catalyst action I tried this code:
-------
$c->log->info( $c->user->return_arg('first') );
my $user_obj
= $c->model('MacWebDB::Person')->find( $c->user->person_id() );
$c->log->info( $user_obj->return_arg('second') );
-------
where the return_arg method is added to Person via a component:
-------
package UMN::MAC::DBIx::Person;
use base qw( DBIx::Class );
__PACKAGE__->load_components( qw( Person_Component PK::Auto Core ) );
[...]
package DBIx::Class::Person_Component;
use base qw( DBIx::Class );
sub return_arg {
my ($self, $arg) = @_;
return "arg: $arg";
}
1;
-------
Then in the log, I find this:
[info] arg:
[info] arg: second
So in both calls, I'm getting the correct method, but only the second
version receives any arguments.
I'm using the following plugins:
use Catalyst qw/
-Debug
ConfigLoader
Static::Simple
Email
HTML::Widget
Session
Session::Store::FastMmap
Session::State::Cookie
Authentication
Authentication::Store::DBIC
Authentication::Credential::Password
Authorization::Roles
/
;
Thanks for any suggestions.
-Steve
More information about the Catalyst
mailing list