Ideally, failure messages should be in the view. In my system, I pass the validator object to the view and it uses a view template to display the error message.

Terry Cullen wrote:
And how are you guys getting failure messages back to the view? Do you
pass error codes or something like  that? Or does your model have to
become aware of language and display media?

On 9/22/06, Ralph Schindler <[EMAIL PROTECTED]> wrote:
 From my work with modeling / controller code, it seems to me that there
are actually 2 distinct layers of validation.  In the web world, the
controller must validate data off the wire for the application, and the
model must validate data for its own business logic and data sanity
within the context of the model.  It seems to me that you cannot lump
validation into one place or another, you should have both as they are
attempting to attain two separate goals.

The controller is trying its best to make sure that data from the user
is sane in the application sense, ie, not trying any silly sql
injections or rouge quoting techniques, etc., making sure that the
correct number and types of arguments are being passed to the
controller... IE, if a controller needs argument $_POST['action'], to
make sure that it indeed exists.  If not satisfied, the controller shall
throw an application error handled by the application or controller
exception handler.

 From the models perspective, it should only be concerned with getting
as much data as required to process a business rule.. IE, did the user
provide me a first_name, last_name, birthday.  AND is birth_day in the
format that I expect.  If not satisfied, the Model throws a Modeling
exception, handled by the controller.

FWIW,
-ralph

John Wells wrote:
> Sam, I think you've brought up a very good point actually.  I would
> completely agree that the Controller should actually be doing very
> little actual "work" on the data.  Especially when it comes to
> validation, as Jean-Baptiste mentioned, I think those basic tutorials
> start to muddle things up.
>
> I saw a friend coding out an application using Code Igniter last week,
> and all of his form input validations were being done within the
> controller.  This is actually by design of CI itself, and I'm not sure
> if it could even be done within a Model (although I haven't tried).
> Point is, CI's manual is telling the coder to place validation rules
> within the Controller, and I don't think that's the right place at
> all.
>
> What I like to do in my apps is have my Controller pass to my Model my
> entire $_POST or $_GET array.  I have a MyModel::setObject() that sets
> the object properties based on the array given to it (I have a choice
> of whether or not to 'blindly' set properties that haven't been
> declared).  Afterward my Controller can call the model's
> MyModel::isValid() method to see if it passed all of the requirements.
> If not, there is a MyModel::$serverMsg array containing a list of
> problems, that the Controller can pass off to the View, etc. etc...
>
> Anyway, I think you're on the right track Sam...
>
> -John W

Reply via email to