[Catalyst] edit has_many relation with FormFu

David Schmidt davewood at gmx.at
Mon Oct 27 09:23:16 GMT 2008


Hello and thanks for your reply.
I tried adding model_config before but it didn't change anything.
Here is a full formfu_create.yml listing:

> indicator: submit
> elements:
> - type: Text
>   name: title
>   label: Title
>
> - type: Textarea
>   name: description
>   label: Description
>
> - type: Select
>   name: pictures
>   label: Pictures
>   multiple: 1
>   size: 10
>
> - type: Select
>   name: active
>   label: Status
>   options:
>     - [ '0', 'inactive' ]
>     - [ '1', 'active' ]
>
> - type: Repeatable
>   nested_name: picture_projects
>   model_config:
>     model: 'myDB::PictureProjects'
>   elements:
>     - type: Hidden
>       name: project_id
>     - type: Hidden
>       name: picture_id
>     - type: Text
>       label: Position
>       name: position
>
> - type: Submit
>   name: submit
>   value: Submit
>
> constraints:
> - Required

The only thing different with your example I can see is that you
apparently have a primary key consisting of one column while I have a
composed primary key of the two foreign keys of the m:n relation.

friendly greetings
david

On Sun, Oct 26, 2008 at 10:59 PM, Chris <hutchinson.chris at gmail.com> wrote:
> Hi David,
>
>> I want to edit a m:n relation between projects and pictures (a project
>> may have many pictures). It is displayed correctly but upon submit the
>> following error message occurs:
>> NOTE: 7 is the project ID which seems to be interpreted as a column name
>>
>> DBI Exception: DBD::SQLite::db prepare_cached failed: near ".7":
>> syntax error(1) at dbdimp.c line 271 [for Statement "SELECT
>> me.picture_id, me.project_id, me.position FROM picture_projects me
>> WHERE ( ( ( me.7 IS NULL ) AND ( me.project_id = ? ) ) )"] at
>> /usr/local/share/perl/5.8.8/DBIx/Class/Schema.pm line 954
>>
>> in this line in Controller/Projects.pm:
>>>if ($form->submitted_and_valid) {
>>>        $form->model->update($project);
>>
>>
>> Any help is highly appreciated as I am stuck with this problem since a
>> few days already.
>>
>> in lib/MyApp/Schema/Projects.pm:
>>> __PACKAGE__->has_many(picture_projects => 'Oberhumer::Schema::PictureProjects', 'project_id');
>>> __PACKAGE__->many_to_many(pictures => 'picture_projects', 'picture');
>>
>> in myapp02.sql:
>>>CREATE TABLE pictures (
>>>        id       INTEGER PRIMARY KEY,
>>>        title    TEXT,
>>>        info     TEXT,
>>>        filename TEXT,
>>>        created  datetime
>>>);
>>>
>>>CREATE TABLE picture_projects (
>>>        picture_id      INTEGER,
>>>        project_id      INTEGER,
>>>        position        INTEGER,
>>>        PRIMARY KEY (project_id, picture_id)
>>>);
>>
>> in root/forms/projects/formfu_create.yml:
>>>- type: Repeatable
>>>  nested_name: picture_projects
>>>  elements:
>>>    - type: Hidden
>>>      name: project_id
>>>    - type: Hidden
>>>      name: picture_id
>>>    - type: Text
>>>      label: Position
>>>      name: position
>>
>> with friendly greetings
>> David Schmidt
>>
>
> What does the rest of formfu_create.yml contain?
>
> I've seen the same problem. I vaguely recall needing a model_config
> section in the formfu config, something like this (as a perl hash):
>
> {       type => 'Fieldset', legend=>'Plant Zones', elements => [
>                                {
>                                        type            => 'Repeatable',
>                                        nested_name     =>      'plant_zones',
>
>                                        model_config    =>      {
>                                                model                           =>      'DB::PlantZones',
>                                                new_empty_row_multi     =>      'zone_id',
>                                        },
>
>                                        attributes      =>      {
>                                                class           =>      'zone-block',
>                                        },
>
>                                        elements        =>      [
>                                                {
>                                                        type    =>      'Hidden',
>                                                        name    =>      'id',
>                                                },
>
> ... etc...
>
> - Chris
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>



-- 
David Schmidt   |   http://www.fm5.at



More information about the Catalyst mailing list