我正在尝试 php 活动记录,这是一个很棒的 ORM,但是我处于停滞状态。
我已经查看了谷歌、博客、phpactiverecord 文档以及 statckoverflow 好几天了,但还没有找到合适的解决方案来解决这个问题。
我能够执行基本的 CRUD(插入、获取、修改和删除)操作,但是一旦我使用静态 $validates_uniqueness_of 过滤器验证对象属性,我就会得到
致命错误:未捕获的异常“ActiveRecord\DatabaseException”
带留言
异常 'PDOException' 与消息'SQLSTATE [42S02]:未找到基表或视图:1146 表'test_ar.models' 不存在'在 C:\wamp\www\test_AR\AR\lib\Connection.php 在线325
这是我完整使用的代码。
<?php
$path_to_AR = "AR/";
include $path_to_AR . "activerecord.php";
ActiveRecord\Config::initialize(function($cfg) {
$cfg->set_model_directory('model');
$cfg->set_connections(
array(
'development' => 'mysql://root:asdf@localhost/test_ar',
'test' => 'mysql://username:password@localhost/test_database_name',
'production' => 'mysql://username:password@localhost/production_database_name'
)
);
});
/*
class user extends ActiveRecord\Model
{
static $validates_presence_of = array(array('username', 'message' => 'Please supply a username')); //this works just fine
static $validates_uniqueness_of = array(array('username'));//this line causes the PDO exception
}
*/
$user = new user();
user::create((array('username'=>'mike','password'=>'test','created'=>time())));
$user::create(array('username'=>'mike')); //cannot even reach this line because of the exeption
我尝试过/看过的参考资料
https://github.com/kla/php-activerecord/issues/274 (虽然我不太明白那里发生了什么)
http://www.phpactiverecord.org/projects/main/wiki/Validations#validates_uniqueness_of
http://blog.felho.hu/what-is-new-in-php-53-part-2-late-static-binding.html
以及许多其他人。
平台和php版本
我正在使用 php 5.3.4 并使用夜间构建(2013 年 5 月 8 日),我几乎无法理解这一点。请告知如何纠正此问题。