[html-formfu] Request advice RE FormFu and join tables

Moritz Onken onken at houseofdesign.de
Tue Apr 14 08:15:45 GMT 2009


Yes there is.

Did you read the documentation of HTML::FormFu::Model::DBIC?

moritz

Am 14.04.2009 um 04:45 schrieb Dennis Daupert:

> Finding my way around, I thought I'd ask for advice before getting  
> myself in too much trouble ;-)
>
> I have several sets of parent / child / join tables in which both  
> the "parent (has many and many-to-many)" and "child (belongs to)"  
> tables are managed separately, and only the join tables need to be  
> updated; e.g. , users, roles, user_roles; projects, directories,  
> project_directories. I am wondering how to configure forms so that  
> inserts, updates, deletes go to the join tables? Or is it best to  
> "hand roll" parameter value capturing and database interactions.
>
> In HTML::FormFu::Model::DBIC I see examples showing yaml  
> configurations for updating tables that are related to one another  
> -- via foreign keys, but I'm not sure how to apply the example logic  
> to my situation.
>
> For example, I have a form that has two Selects: projects and  
> directories. The user will select one project, and could select  
> multiple directories. Both Projects and Directories tables are  
> prepopulated, so only the projects_directories join table needs to  
> be modified. Let me paste some bits from the three tables, snipped  
> for brevity:
>
> ===============================
> package hde::Schema::Result::Projects;
> __PACKAGE__->table("projects");
> __PACKAGE__->add_columns(
>   "id",   { data_type => "INTEGER", is_nullable => 0, size => undef },
>   "rel_tag",   { data_type => "TEXT", is_nullable => 0, size =>  
> undef },
>
> __PACKAGE__->has_many(map_project_directory =>  
> 'hde::Schema::Result::ProjectDirectories', 'directory_id');
> __PACKAGE__->many_to_many(directories => 'map_project_directory',  
> 'directory');
>
> ===============================
> package hde::Schema::Result::Directories;
> __PACKAGE__->table("directories");
> __PACKAGE__->add_columns(
>   "id",   { data_type => "INTEGER", is_nullable => 0, size => undef },
>   "directory",   { data_type => "TEXT", is_nullable => 0, size =>  
> undef },
>
> __PACKAGE__->has_many(map_project_directory =>  
> 'hde::Schema::Result::ProjectDirectories', 'directory_id');
>
> ===============================
> package hde::Schema::Result::ProjectDirectories;
> __PACKAGE__->table("project_directories");
> __PACKAGE__->add_columns(
>   "project_id",   { data_type => "INTEGER", is_nullable => 0, size  
> => undef },
>   "directory_id",   { data_type => "INTEGER", is_nullable => 0, size  
> => undef },
> __PACKAGE__->belongs_to(project => 'hde::Schema::Result::Projects',  
> 'project_id');
> __PACKAGE__->belongs_to(directory =>  
> 'hde::Schema::Result::Directories', 'directory_id');
>
> ===============================
>
> Is/are there configuration settings that allow FormFu to easily  
> handle this sort of situation?
>
> /dennis
>
>
>
> _______________________________________________
> HTML-FormFu mailing list
> HTML-FormFu at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu




More information about the HTML-FormFu mailing list