[Catalyst] relationship or user problem

Will Hawes info at whawes.co.uk
Mon Feb 6 18:09:41 CET 2006


Wijnand Wiersma wrote:
> Hi all,
> 
> I don't know if it is my lack of knowledge or a real problem but it is a 
> problem :-)
> 
> I have two tables and they are related to eachother.
> One table person:
> CREATE TABLE person (
>     id serial NOT NULL,
>     name character varying(128),
>     address character varying(255),
>     zip character varying(10),
>     town character varying(64),
>     country character(2) NOT NULL,
>     phone character varying(32),
>     email character varying(128),
>     homepage character varying(128),
>     extra text,
>     created timestamp without time zone,
>     updated timestamp without time zone,
>     "password" character varying(64),
>     company integer,
>     username character varying(32),
>     birthday date DEFAULT '1970-01-01'::date NOT NULL
> );
> 
> And one table pskills
> CREATE TABLE pskills (
>     id SERIAL PRIMARY KEY,
>     person INT NOT NULL,
>     name VARCHAR(32) NOT NULL,
>     level INT NOT NULL,
>     years INT NOT NULL);
> 
> ALTER TABLE ONLY pskills
>         ADD CONSTRAINT personfk FOREIGN KEY (person) REFERENCES 
> person(id) MATCH FULL;
> 
> As you can see pskills.person references to person.id
> 
> In my models I have following lines:
> Person.pm
> __PACKAGE__->has_many('pskills' => 'bsdjobs::Model::DBIC::Pskills', 
> 'person');
> Pskills.pm
> __PACKAGE__->belongs_to(person => bsdjobs::Model::DBIC::Person);
> 
> The person table is also the table I authenticate to.
> When a person logs in he gets is profile page, a nice overview of his 
> settings.
> I wish to add a list of his defined skills there too so I have following 
> code in my template:
> <h4>Your skills</h4>
> <a href="/persons/addskill">Add a skill</a>
> <ul>
> [% FOREACH skill c.user.user.pskills %]
>   <li>skill.name</li>
> [% END %]
> </ul>
> 
> When I request this page with a user that has 3 rows in pskills there is 
> nothing between the ul's. So it seems c.user.user.pskills is not defined.
> 
> I thought this would work automatically like this but I guess I am wrong.
> How can I use this relationship?
> 

Strictly speaking this is a DBIx::Class question, so CC'd to that list.

What version of DBIx::Class are you using, and what do you get if you 
dump the contents of a) c.user.user and b) c.user.user.pskills?



More information about the Catalyst mailing list