Note that there are some explanatory texts on larger screens.

plurals
  1. POAdapter Db\NoRecordExists Error [Zend 2]
    primarykey
    data
    text
    <blockquote> <p>Catchable fatal error: Argument 1 passed to Zend\Validator\Db\AbstractDb::setAdapter() must be an instance of Zend\Db\Adapter\Adapter, null given, called in /home2/mapasgua/vendor/zendframework/zendframework/library/Zend/Validator/AbstractValidator.php on line 142 and defined in /home2/mapasgua/vendor/zendframework/zendframework/library/Zend/Validator/Db/AbstractDb.php on line 168</p> </blockquote> <p>Module.php</p> <pre><code> &lt;?php namespace User; use Zend\Mvc\MvcEvent; use Zend\Mvc\ModuleRouteListener; use User\Model\UsersTable; use User\Model\Users; class Module { public function onBootstrap(MvcEvent $e) { ini_set('date.timezone', 'America/Sao_Paulo'); $e-&gt;getApplication()-&gt;getServiceManager()-&gt;get('translator'); $eventManager = $e-&gt;getApplication()-&gt;getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener-&gt;attach($eventManager); $e-&gt;getApplication()-&gt;getEventManager()-&gt;getSharedManager()-&gt;attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) { $controller = $e-&gt;getTarget(); $controllerClass = get_class($controller); $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\')); $config = $e-&gt;getApplication()-&gt;getServiceManager()-&gt;get('config'); if (isset($config['module_layouts'][$moduleNamespace])) { $controller-&gt;layout($config['module_layouts'][$moduleNamespace]); } }, 100); } public function getAutoloaderConfig() { return array( // 'Zend\Loader\ClassMapAutoloader' =&gt; array( // __DIR__ . '/autoload_classmap.php', // ), 'Zend\Loader\StandardAutoloader' =&gt; array( 'namespaces' =&gt; array( __NAMESPACE__ =&gt; __DIR__ . '/src/' . __NAMESPACE__, ), ), ); } public function getServiceConfig() { return array( 'factories' =&gt; array( 'User\Model\UsersTable' =&gt; function($sm) { $dbAdapter = $sm-&gt;get('Zend\Db\Adapter\Adapter'); $table = new UsersTable($dbAdapter); return $table; }, 'User\Model\Users' =&gt; function($sm) { $dbAdapter = $sm-&gt;get('Zend\Db\Adapter\Adapter'); $users = new Users(); $users-&gt;setDbAdapter($dbAdapter); return $users; }, ), ); } public function getConfig() { return include __DIR__ . '/config/module.config.php'; } } </code></pre> <p>Users.php</p> <pre><code> &lt;?php namespace User\Model; use Zend\InputFilter\InputFilter; use Zend\InputFilter\Factory as InputFactory; use Zend\InputFilter\InputFilterInterface; use Zend\InputFilter\InputFilterAwareInterface; use Zend\Db\Adapter\Adapter; use Zend\Validator\Db\AbstractDb; class Users implements InputFilterAwareInterface { public $id; public $name; public $username; public $password; protected $inputFilter; public $_dbAdapter; public function exchangeArray($data) { $this-&gt;id = (isset($data['id'])) ? $data['id'] : null; $this-&gt;name = (isset($data['name'])) ? $data['name'] : null; $this-&gt;username = (isset($data['username'])) ? $data['username'] : null; $this-&gt;password = (isset($data['password'])) ? $data['password'] : null; } public function getArrayCopy() { return get_object_vars($this); } public function setInputFilter(InputFilterInterface $inputFilter) { throw new \Exception("Not used"); } public function setDbAdapter($dbAdapter) { $this-&gt;_dbAdapter = $dbAdapter; } public function getDbAdapter() { return $this-&gt;_dbAdapter; } public function getInputFilter() { if (!$this-&gt;inputFilter) { $inputFilter = new InputFilter(); $factory = new InputFactory(); $inputFilter-&gt;add($factory-&gt;createInput(array( 'name' =&gt; 'id', 'required' =&gt; true, 'filters' =&gt; array( array('name' =&gt; 'Int'), ), ))); $inputFilter-&gt;add($factory-&gt;createInput(array( 'name' =&gt; 'name', 'required' =&gt; true, 'filters' =&gt; array( array('name' =&gt; 'StripTags'), array('name' =&gt; 'StringTrim'), ), 'validators' =&gt; array( array( 'name' =&gt; 'StringLength', 'options' =&gt; array( 'encoding' =&gt; 'UTF-8', 'min' =&gt; 3, 'max' =&gt; 32, ), ), ), ))); $inputFilter-&gt;add($factory-&gt;createInput(array( 'name' =&gt; 'username', 'required' =&gt; true, 'filters' =&gt; array( array('name' =&gt; 'StripTags'), array('name' =&gt; 'StringTrim'), ), 'validators' =&gt; array( array( 'name' =&gt; 'EmailAddress', 'options' =&gt; array( 'encoding' =&gt; 'UTF-8', 'min' =&gt; 3, 'max' =&gt; 32, 'message' =&gt; 'Endereço de e-mail invalido', ), ), array( 'name' =&gt; 'Db\NoRecordExists', 'options' =&gt; array( 'table' =&gt; 'users', 'field' =&gt; 'username', 'adapter' =&gt; $this-&gt;getDbAdapter(), 'exclude' =&gt; array( 'field' =&gt; 'id', 'value' =&gt; !is_null( $this-&gt;id ) &amp;&amp; !empty( $this-&gt;id ) ? $this-&gt;id : 0, ), ), ), ), ))); $inputFilter-&gt;add($factory-&gt;createInput(array( 'name' =&gt; 'password', 'required' =&gt; true, 'filters' =&gt; array( array('name' =&gt; 'StripTags'), array('name' =&gt; 'StringTrim'), ), 'validators' =&gt; array( array( 'name' =&gt; 'StringLength', 'options' =&gt; array( 'encoding' =&gt; 'UTF-8', 'min' =&gt; 3, 'max' =&gt; 32, ), ), ), ))); $inputFilter-&gt;add($factory-&gt;createInput(array( 'name' =&gt; 'retype-password', 'required' =&gt; true, 'filters' =&gt; array( array('name' =&gt; 'StripTags'), array('name' =&gt; 'StringTrim'), ), 'validators' =&gt; array( array( 'name' =&gt; 'StringLength', 'options' =&gt; array( 'encoding' =&gt; 'UTF-8', 'min' =&gt; 3, 'max' =&gt; 32, ), ), array( 'name' =&gt; 'Identical', 'options' =&gt; array( 'token' =&gt; 'password', //I have tried $_POST['password'], but it doesnt work either ), ), ), ))); $this-&gt;inputFilter = $inputFilter; } return $this-&gt;inputFilter; } } </code></pre> <p>UserController.php</p> <p>namespace User\Controller;</p> <pre><code>&lt;?php use Zend\Mvc\Controller\AbstractActionController; use Zend\Authentication\AuthenticationService; use Zend\Authentication\Adapter\DbTable as AuthAdapter; use Zend\Authentication\Result as Result; use Zend\Mail; use User\Form\LoginForm; use User\Form\RegisterForm; use User\Form\RecuperarForm; use User\Model\Users; class UserController extends AbstractActionController { protected $usersTable; public function configAction() { $auth = new AuthenticationService(); $form = new RegisterForm(); $identity = null; if ($auth-&gt;hasIdentity()) { $dados = $this-&gt;getUsersTable()-&gt;getUser($auth-&gt;getIdentity()); $request = $this-&gt;getRequest(); if ($request-&gt;isPost()) { $users = new Users(); $post = $request-&gt;getPost(); $form-&gt;setInputFilter($users-&gt;getInputFilter()); $form-&gt;setData($post); if ($form-&gt;isValid()) { $users-&gt;exchangeArray($post); $this-&gt;getUsersTable()-&gt;saveUsers($users); $this-&gt;flashMessenger()-&gt;addMessage("Configurações atualizadas com sucesso."); return $this-&gt;redirect()-&gt;toRoute('painel'); } } else { $post = array( 'id' =&gt; $dados-&gt;id, 'name' =&gt; $dados-&gt;name, 'username' =&gt; $dados-&gt;username, ); $form-&gt;setData($post); } } else { return $this-&gt;redirect()-&gt;toRoute('login'); } return array( 'form' =&gt; $form, ); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload