我对以下代码片段感到有些困惑,它只是在使用 addField() 将列添加到模型之前检查表中是否存在列。
然而奇怪的是,PHP error_log 警告我第一次使用公共变量时没有正确定义它:
/var/www/ocmal_db_svn/lib/Model/Conflicto.php:[Notice] Undefined property: Model_Conflicto::$entity_code,
这就是 SQL 查询抛出错误的原因,因为没有表名的“SHOW columns FROM”是不完整的......
在类中定义一个公共变量应该初始化它,不是吗?还是有其他问题?任何人都可以在这里看到错误吗?我在看什么?(这是 PHP 5.3 顺便说一句)
class Model_Conflicto extends Model_Table {
public $entity_code='conflicto';
function init(){
parent::init();
if ($this->api->db->dsql()->expr("SHOW COLUMNS FROM `". $this->entity_code. "` LIKE 'lock_id'")->getOne()==null)
error_log('OCMAL_DB: WARNING: table '.$this->entity_code.' does not have lock_id, which is kinda BAD !!!');
else $this->addField('lock_id');