2013-10-05 93 views
0

沒有數據庫適配器我有這個類:ZendFramework 2:目前

<?php 
class RegisterFilter extends InputFilter 
{ 
    public function __construct() 
    { 
     $this->add(array(
      'name'  => 'email1', 
      'required' => true, 
      'validators' => array(
       array(
        'name' => 'EmailAddress', 
        'options' => array(
         'domain' => true, 
        ), 
       ), 
       array(
         'name' => 'Identical', 
         'options' => array(
         'token' => 'email2', 
        ), 
       ), 
       array(
         'name' => 'Db\NoRecordExists', 
         'options' => array(
         'table' => 'user', 
         'field' => 'email', 
         'messages' => array(
          'recordFound' => "Email already exist ... ! <br>", 
         ), 
        ), 
       ), 
      ), 
     )); 
    } 
} 
?> 

我得到這個錯誤:不存在數據庫適配器。任何想法爲什麼發生這種情況

回答

0

這會很好,如果你讀the documentation about Zend\Validator\Db\Record*。給出的錯誤信息正是它所說的。您不在Validator中提供DB適配器。

從文檔:

$validator = new Zend\Validator\Db\RecordExists(
    array(
     'table' => 'users', 
     'field' => 'emailaddress', 
     'adapter' => $dbAdapter 
    ) 
); 

如果您想了解如何獲得DB-適配器插入到表單中,我已經寫了約a Blog Article說的話題。

+0

$ dbAdapter的值是什麼。同樣在http://framework.zend.com/manual/2.0/en/modules/zend.validator.db.html,它們以不同的方式使用它。 – wwjdm

+0

另外,我可以設置表單的驗證器。我能夠設置一個過濾器。想知道它是否是相同的過程。 – wwjdm

+0

@EliMiller是的,他們以不同的方式使用它,但架構仍然相同。 $ dbAdapter應該像Zend \ Db \ Adapter \ Adapter,它必須是一個AdapterInterface;)Filter/Validators幾乎是一樣的故事。 – Sam