Re: Dynamic Error Messages in 1.2?
Don't know if this will actually help or hinder nate in his efforts, but I made it work like this: http://bakery.cakephp.org/articles/view/multiple-rules-of-validation-per-field-in-cakephp-1-2#1943 The basic principle is : define a magic constant to use in the $validation array to mean manual, then call Model::invalidate() manually inside the validation method. It does involve overriding AppModel::invalidate(), but it works. On Mar 9, 4:45 pm, nate [EMAIL PROTECTED] wrote: Well, I'm *sort of* in the middle of doing it, but if you could provide unit tests for it, that would be fantastically useful. Just open an enhancement ticket and attach the diff. If you can do that, I'll try and get to it sometime today. On Mar 9, 3:49 am, Mike [EMAIL PROTECTED] wrote: Having read John David Anderson (_psychic_)'s second post tohttp://groups.google.com/group/cake-php/browse_thread/thread/7acc2b07..., I was wondering if it would be helpful if I put a proposed code change (including some unit tests) to do this. If this has been spec'd out at all, I'd be happy to follow that. If not, I'd be happy to code up (and document) something that allows the validation method to change the 'message' element of the $ruleParams array, and have that change stick. I also understand that this can be one of those 'Mythical Man Month' sorts of things - if it would be faster for y'all to just do this on your own, that's fine by me, too. Thanks! --Mike On Mar 8, 11:24 pm, Mike [EMAIL PROTECTED] wrote: Awesome!! Thank you very much! (I do understand that this decision was made independent of my questions about this feature, but I figure that it's a nice feature that I'm looking forwards to, and so saying 'Thanks' seems to be a good thing to do :) ) Thanks! --Mike On Mar 8, 6:42 am, nate [EMAIL PROTECTED] wrote: This will be implemented before the next release. On Mar 7, 8:26 pm, Mike [EMAIL PROTECTED] wrote: 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
Re: Dynamic Error Messages in 1.2?
Having read John David Anderson (_psychic_)'s second post to http://groups.google.com/group/cake-php/browse_thread/thread/7acc2b07160366c2, I was wondering if it would be helpful if I put a proposed code change (including some unit tests) to do this. If this has been spec'd out at all, I'd be happy to follow that. If not, I'd be happy to code up (and document) something that allows the validation method to change the 'message' element of the $ruleParams array, and have that change stick. I also understand that this can be one of those 'Mythical Man Month' sorts of things - if it would be faster for y'all to just do this on your own, that's fine by me, too. Thanks! --Mike On Mar 8, 11:24 pm, Mike [EMAIL PROTECTED] wrote: Awesome!! Thank you very much! (I do understand that this decision was made independent of my questions about this feature, but I figure that it's a nice feature that I'm looking forwards to, and so saying 'Thanks' seems to be a good thing to do :) ) Thanks! --Mike On Mar 8, 6:42 am, nate [EMAIL PROTECTED] wrote: This will be implemented before the next release. On Mar 7, 8:26 pm, Mike [EMAIL PROTECTED] wrote: 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
Re: Dynamic Error Messages in 1.2?
Well, I'm *sort of* in the middle of doing it, but if you could provide unit tests for it, that would be fantastically useful. Just open an enhancement ticket and attach the diff. If you can do that, I'll try and get to it sometime today. On Mar 9, 3:49 am, Mike [EMAIL PROTECTED] wrote: Having read John David Anderson (_psychic_)'s second post tohttp://groups.google.com/group/cake-php/browse_thread/thread/7acc2b07..., I was wondering if it would be helpful if I put a proposed code change (including some unit tests) to do this. If this has been spec'd out at all, I'd be happy to follow that. If not, I'd be happy to code up (and document) something that allows the validation method to change the 'message' element of the $ruleParams array, and have that change stick. I also understand that this can be one of those 'Mythical Man Month' sorts of things - if it would be faster for y'all to just do this on your own, that's fine by me, too. Thanks! --Mike On Mar 8, 11:24 pm, Mike [EMAIL PROTECTED] wrote: Awesome!! Thank you very much! (I do understand that this decision was made independent of my questions about this feature, but I figure that it's a nice feature that I'm looking forwards to, and so saying 'Thanks' seems to be a good thing to do :) ) Thanks! --Mike On Mar 8, 6:42 am, nate [EMAIL PROTECTED] wrote: This will be implemented before the next release. On Mar 7, 8:26 pm, Mike [EMAIL PROTECTED] wrote: 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
Re: Dynamic Error Messages in 1.2?
This will be implemented before the next release. On Mar 7, 8:26 pm, Mike [EMAIL PROTECTED] wrote: 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
Re: Dynamic Error Messages in 1.2?
Awesome!! Thank you very much! (I do understand that this decision was made independent of my questions about this feature, but I figure that it's a nice feature that I'm looking forwards to, and so saying 'Thanks' seems to be a good thing to do :) ) Thanks! --Mike On Mar 8, 6:42 am, nate [EMAIL PROTECTED] wrote: This will be implemented before the next release. On Mar 7, 8:26 pm, Mike [EMAIL PROTECTED] wrote: 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.
Re: Dynamic Error Messages in 1.2?
Have you tried Model::invalidate(...)? http://api.cakephp.org/1.2/class_model.html#81c94997c2d6158c40efd9c7008f18a3 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 --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Dynamic Error Messages in 1.2?
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 - --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Dynamic Error Messages in 1.2?
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 - --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Dynamic Error Messages in 1.2?
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.
Re: Dynamic Error Messages in 1.2?
On Mar 7, 2:29 am, Mike [EMAIL PROTECTED] wrote: 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. snip At least for me, the form handling is one of the huge pains. I hope, you're looking for http://bakery.cakephp.org/articles/view/conditinalvalidation-behavior -- ?php echo 'Just another PHP saint'; ? Email: rrjanbiah-at-Y!comBlog: http://rajeshanbiah.blogspot.com/ --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---