Here is my typical form
$errors = array();
if ($this->request->post(\'submit\')) { // <----- I don\'t like this line
$post
if ($post = $this->request->post())
{
$post = Validation::factory($post);
...
}
This is how I'd do it, except for the condition:
if (Request::POST === $this->request->method())
would be more suitable. There is no way to "skip" the POST check without having consequences (like the errors in your case).
We had a discussion on this topic, 5.3 will probably add more features. Something like:
$this->post(function(){
// do POST-specific stuff
})
->get(function(){
// do GET-specific stuff
});