[html-formfu] How to restrict retrieved rows in has_many relationships?

Moritz Onken onken at houseofdesign.de
Thu Aug 6 07:21:11 GMT 2009


Am 06.08.2009 um 08:42 schrieb Mario Minati:

> michele.gherlone at liceoberchet.it schrieb:
>>> michele.gherlone at liceoberchet.it schrieb:
>>>
>>>>> Hi Michele,
>>>>>
>>>>> currently I don't think this is possible in the dynamic way you  
>>>>> want
>>>>> it.
>>>>>
>>>>> What I don't understand is that materia is a underneath voti. If
>>>>> materia
>>>>> shall control the elements of voti, it should be at least on the  
>>>>> same
>>>>> hierarchical level.
>>>>>
>>>>>
>>>> Hi, Mario. I didn't explain my relationships in detail, maybe.
>>>> Since table materia has_many voti, and table studente has_many  
>>>> voti, in
>>>> the 'voti' table we have studente_id and materia_id. In the  
>>>> config file
>>>> I
>>>> showed you, I am exploiting in the last Block underneath voti the
>>>> belongs_to relationship (voto belongs_to materia, materia_id). The
>>>> column
>>>> I'd like to restrict my results with would also be materia_id.
>>>>
>>>> I think I could also try to use a multi like a select or a  
>>>> checkboxgroup
>>>> with options_from_ model, but again I should then set:
>>>> model_config:
>>>> resultset: Voto
>>>> condition:
>>>>  materia_id: 2
>>>>  studente_id: 2315

I would propose something like this:

$element->model_config->{condition} = sub { my ($form, $element) = @_;  
return { materia_id => 2, studente_id => 1234 } }

This would allow you to set the materia_id or studente_id dynamically  
by iterating through the $form/$element tree.

moritz



More information about the HTML-FormFu mailing list