[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