2009年4月29日星期三

Re: [fw-core] Zend Form and Input Filtering

Hmm.. good point. I've gone ahead and done that and works well. Seems like the NormalizedToLocalized and reverse filters aren't available in ZF 1.7, so went with the pregReplace.

Is it just me or are forms really flakey? I tried adding a GreaterThan validator in my ini config, but it refused to work. When I access an element ($form->elementName->getValue()) it tells me that I'm using a method on a non-object. I tried adding it programatically and it worked fine. Weird.

Here's what I've got:

elements.event_max_per_child.type                   = "text"
elements.event_max_per_child.options.label          = "Max Interviews Per Child"
elements.event_max_per_child.options.required       = true
elements.event_max_per_child.options.filters.int.filter = int

;Adding this one works:
;elements.event_max_per_child.options.validators.notempty.validator = "NotEmpty"

;I add these and the form dies
;elements.event_max_per_child.options.validators.greaterthan.validator = "GreaterThan'
;elements.event_max_per_child.options.validators.greaterthan.options.min = 1


In my form class's init() method:

 $this->getElement('event_max_per_child')
            ->addValidator('GreaterThan', false, array('min' => 1));

           
Any idea what I'm doing wrong?

Cheers,
David


Hector Virgen wrote:
I wouldn't say it's necessary, but it helps promote reuse. Otherwise you'll have to write that conversion in each of your view scripts that uses a date.

-Hector


On Tue, Apr 28, 2009 at 5:49 PM, David Muir <david@davidkmuir.com> wrote:
I'm aware of Matthew's articles. My question however was whether or not creating my own decorator is necessary in this case, and also whether the NormalizedToLocalized and vice versa filters are the ones I should be using. The documentation is a wee bit sparse for those particular filters.

David


Hector Virgen wrote:
Matthew wrote an excellent blog entry on this exact topic, you should check it out.


-Hector


On Tue, Apr 28, 2009 at 12:49 AM, David Muir <david@davidkmuir.com> wrote:
What's the best way to handle a time or date field?

At the moment, for dates I've added a pregReplace filter to the form element to swap from dd/mm/yyyy to yyyy-mm-dd.

Then in the view scrip, I have a second filter added to swap from yyyy-mm-dd to dd/mm/yyyy.

It works, but I'm not really happy with the code. I just noticed the NormalizedToLocalized and LocalizedToNormalized filters, which I'm assuming is what I should be using.

Is the cleanest way to deal with this be to create date and time elements together with their own custom decorators that apply the NormalizedToLocalized filter on output? I would have thought that this is such a common use-case that there would already have been something set up for this?

Cheers,
David





没有评论: