title: Select Element Validation
body: <p>I have a Select element in my form like this:</p>
  
  <pre><code>$this-&gt;add(array(
      'name' =&gt; 'cat_id',
      'type' =&gt; 'Zend\Form\Element\Select',
      'options' =&gt; array(
          'label' =&gt; 'Categoria',
          'empty_option' =&gt; '',
          'value_options' =&gt; array(
              '' =&gt; '',
          ),
      ),
  ));
  </code></pre>
  
  <p>The <code>value_options</code> is filled with database info in my controller... (there's is a better way?)</p>
  
  <p>And I have a InputFilter for him, like this:</p>
  
  <pre><code>$this-&gt;add(array(
      'name' =&gt; 'cat_id',
      'required' =&gt; true,
      'validators' =&gt; array(
          array(
              'name' =&gt; 'NotEmpty',
              'break_chain_on_failure' =&gt; true,
              'options' =&gt; array(
                  'messages' =&gt; array('isEmpty' =&gt; 'O campo "Categoria" é obrigatório'),
              ),
          ),
      ),
  ));
  </code></pre>
  
  <p>Note that I want to change the <code>isEmpty</code> message... and that's the problem!</p>
  
  <p>When I submit the form I still get the same message in english:</p>
  
  <pre><code>cat_id:
      isEmpty : Value is required and can't be empty
  </code></pre>
  
  <p>So my question is : Why I still have this message? Where it came from? How can I change it?</p>
  
  <p>Ps.: With Text elements, it works well. Only with Select elements I get this issue.</p>
  
  <p>Extra question : </p>
  
  <p>If I wants to use an InArray Validator, like this:</p>
  
  <pre><code>array(
      'name'    =&gt; 'InArray',
      'options' =&gt; array(
          'haystack' =&gt; array( ... ),
          'messages' =&gt; array(
              'notInArray' =&gt; 'Valor não encontrado no banco de dados' 
          ),
      ),
  ),
  </code></pre>
  
  <p>I need always to fill the <code>haystack</code> fild? There's no way that say to the validator to use the form <code>value_options</code>?</p>
  
  <p>Tnks!</p>
  
  <p><strong>EDIT</strong></p>
  
  <p><strong>I'm not sure</strong>, cause nobody had confirmed that, but I guess ZF2 make default validations to an form element when you set the <code>type</code> for it.</p>
  
  <p>For exemple,</p>
  
  <pre><code>$this-&gt;add(array(
      'name' =&gt; 'cat_id',
      'type' =&gt; 'Zend\Form\Element\Select',
      'options' =&gt; array(
          'empty_option' =&gt; '',
          'value_options' =&gt; array(
              // ...
          ),
      ),
      'attributes' =&gt; array(
          // ...
      ),
  ));
  </code></pre>
  
  <p>In this case, ZF2 looks to create some default validations to an Select element, like check if is empty and check the haystack.</p>
  
  <p>So how can I override the messages in this validation?</p>