0
我使用的是oracle-10g的php-activerecord。我遇到的问题与oracle列区分大小写。php-active记录oracle情况敏感列
class Employee extends ActiveRecord\Model{
static $table_name = 'EMPLOYEE';
static $primary_key = 'PERSON_ID';
static $belongs_to = array(
array('supervisor', 'class_name' => 'Employee','foreign_key'=>'SUPERVISOR_ID')
);
}
测试:
$employee = Employee::first();
echo $employee->supervisor_ID; // Does not work - Oracle Columns are case sensitive
echo $employee->SUPERVISOR_ID; // Prints ID
$employees = Employee::find('all', array('limit' => 10, 'include' => array('supervisor')));
错误:
Fatal error: Uncaught exception 'ActiveRecord\UndefinedPropertyException' with message 'Undefined property: Employee->supervisor_id
为什么正在寻找小写supervisor_id当我定义的外键SUPERVISOR_ID?我可以让它不区分大小写吗?我很感激帮助。谷歌今天失败了。
UPDATE:
我发现这个Yii框架网站:
“的原因似乎只是部分Oracle相关的Oracle不依赖于列名的大小写敏感的,只要它们没有在引号中指定,如果是这样,它需要精确的列名拼写,因此,似乎在ActiveRecord下面的Yii代码中必须有一个表名带有引号的部分,导致上述问题“。
^^因此,好像我需要破解phpactiverecord代码的某处,以避免引用列名。我猜phpactiverecord与甲骨文很差。性能也应该很差。