我制作了一个小网站,并决定使用Valitron库作为我网站的验证部分。我注意到没有任何"独特的"返回数据库中是否已存在传递值的方法。我很快就添加了这个方法,但不建议这样做。我补充说:
protected function validateUnique($field, $value, $table)
{
$model = new Model();
return $model->unique($table[0], $field, $value);
}
到主验证程序类。问题是,它是有效的,但只有一个领域。如果我在验证过程中的2个或更多字段上使用它,我会收到此错误
致命错误:未捕获的异常' RedBeanPHP \ RedException'使用消息'已为此密钥指定了数据库。'在C:\ dev \ htdocs \ Shop \ vendor \ gabordemooij \ redbean \ RedBeanPHP \ Facade.php:295堆栈跟踪:#0 C:\ dev \ htdocs \ Shop \ vendor \ gabordemooij \ redbean \ RedBeanPHP \ Facade.php(216 ):RedBeanPHP \ Facade :: addDatabase('默认',' mysql:host = 127 ....',' root','& #39;,false)#1 C:\ dev \ htdocs \ Shop \ app \ libs \ Model.php(18):RedBeanPHP \ Facade :: setup(' mysql:host = 127 ....&# 39;,' root','')#2 C:\ dev \ htdocs \ Shop \ vendor \ vlucas \ valitron \ src \ Valitron \ Validator.php(429):商店\ libs \ Model-> __ construct()#3 [内部函数]:Valitron \ Validator-> validateUnique(' email',' email.example@g ...' ,数组)#4 C:\ dev \ htdocs \ Shop \ vendor \ vlucas \ valitron \ src \ Valitron \ Validator.php(885):call_user_func(Array,' email',' email。例如@ g ...',数组)#5 C:\ dev \ htdocs \ Shop \ app \ controllers \ AuthController.php(68):Valitron \ Validator-> validate()#6 [内部函数] :Shop \ controllers \ AuthController-> postRegister()#7 C:\ dev \ htdocs \ Shop \ app \ libs \ Boots trap.php(64):在第295行的C:\ dev \ htdocs \ Shop \ vendor \ gabordemooij \ redbean \ RedBeanPHP \ Facade.php
我第一次与RedBean以及Valitron合作,我无法说出导致问题的原因。
答案 0 :(得分:-1)
我得到了同样的错误。
已为此密钥指定了数据库。在/ var / www / html ...
我已经设置了一个数据库并希望连接另一个数据库然后我使用R :: addDatabase()函数添加新的数据库和R :: selectDatabase()函数来选择该数据库。
代码是
define('dsn2', 'pgsql:host=localhost;dbname=mydb';
R::addDatabase('DB2', dsn2, 'dbusers', 'dbpasss');
R::selectDatabase('DB2');