Thanks for your suggestion - I was thinking about that, and here's
what I came up with.  If you can see any holes/offer any refinements,
I'd love to hear about them :)

Part of the reason I'm against this is that I've already got a
function that does what I want, and I'm looking to reuse it in
CakePHP, rather than redo everything the Cake way.

Another part is that I think that if I redo this in Cake, it'll end up
being more awkward, because I want this functionality to be used for
multiple fields (so I'll need the same collection of rules, for each
and every field).

My goal:
I want to create a directory on the server, so that users can upload
files to the server.  When the 'superuser' creates the directory, I
want there to be 2 options:
1) Use an existing directory
2) Use an existing directory if it's there, and create it if not.

So, breaking this down into pieces, it seems like there are a couple
of steps:
1) If the directory exists:
1.1) If it's writable, then we're done & we're good
1.2) If it's NOT writable, then we're done & we've got an error

2) If it doesn't exist:
2.1) If the user has elected to create the directory when it doesn't
exist,
          then create it
   2.1.1) We may encounter errors trying to create the directory

2.2) If the user has elected to NOT create the directory when it
doesn't exist
          then we're done, and we've got an error

Basically, the user types the directory into a textbox, then checks a
checkbox to indicate 'create if not present'

So - if I have a rule which says 'check for the existence (and
writability) of the directory', and it finds that the directory isn't
there, then we may need to give the user an error, OR we may not
(depending on the 'create if not already there' checkbox).  That would
be 1 rule, I guess.

Next, if the directory doesn't exist, but we want to create it, we'll
try to do that.  Which is a second rule.  There are a couple of
different things that could go wrong, so I guess we'll use a semi-
generic error message, and hope that's helpful enough :)

This all gets further complicated by a desire to reuse this for
several different fields - now I need to copy this set of validation
rules into the second (and third, etc, etc) fields, too, which is
getting kind of awkward.  It's not the end of the world, but having
all the (related) logic in one function is kinda nice, and this way,
that one function can produce exact error messages.

Thanks!
--Mike


On Mar 7, 4:19 pm, "b logica" <[EMAIL PROTECTED]> wrote:
> Why not just create a second validation method and narrow the first
> one to whatever concerns the message you've set for it?
>
>
>
> On Fri, Mar 7, 2008 at 6:46 PM, Mike <[EMAIL PROTECTED]> wrote:
>
> >  Thanks for the reply!  One of the big reasons I went with Cake is that
> >  it seemed to have an active, friendly community.  I'm glad to be part
> >  of it! :)
>
> >  I tried this out, and it doesn't seem to work.  Looking at the code in
> >  cake/libs/model/model.php, specifically the invalidFields method, just
> >  below where the call_user_func_array function is called, it appears
> >  that if the user-defined validation method (i.e., my method) returns
> >  false, then the Cake code will call Model::invalidate using the
> >  default error message for that rule.
>
> >  Since this happens after my method has finished executing, this means
> >  that the error message that my method set is now overwritten with the
> >  default 'message'.
>
> >  As a matter of fact - looking at the code in the invalidFields, it
> >  looks like it's impossible to have a validation method create a
> >  dynamic error message, given the code that's there, now.
>
> >  Does anybody else have an interest in being able to create dynamic
> >  error messages from within a validation method/function?  If so, how
> >  do we ask for this feature to be incorporated into Cake?
>
> >  Thanks!
> >  --Mike
>
> >  On Mar 7, 7:31 am, "dr. Hannibal Lecter" <[EMAIL PROTECTED]> wrote:
> >  > Have you tried Model::invalidate(...)?
>
> >  >http://api.cakephp.org/1.2/class_model.html#81c94997c2d6158c40efd9c70...
>
> >  > On Mar 6, 10:29 pm, Mike <[EMAIL PROTECTED]> wrote:
>
> >  > > Hello!
>
> >  > > In CakePHP 1.2, one can define a validation rule (in a model) that
> >  > > calls a method to do the validation.  If the method returns false,
> >  > > then whatever message was specified for that rule is displayed in the
> >  > > view, which is great for most of data validation needs.
>
> >  > > However, in the case that the method returns false, I'd to have that
> >  > > method change the 'message' to be something new (which the method just
> >  > > generated).  It looks like I can do this by hacking the cake/  file,
> >  > > and by tweaking some code in the invalidFields method (right around
> >  > > the calls to call_user_func_array).
>
> >  > > Is it possible to do this (to have the validation method set/change
> >  > > the message dynamically) without hacking Cake itself?  I'm really
> >  > > sorry if I've missed this, but I've looked around, but haven't found
> >  > > anything that seems directly applicable.
>
> >  > > Thanks!
> >  > > ---Mike- Hide quoted text -
>
> >  > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to