addField()を使用してモデルに列を追加する前に、テーブルに列が存在するかどうかを確認するだけの次のコードの一部について、少し混乱しています。
ただし、奇妙なことに、PHP error_logは、初めて使用するときにpublic変数が適切に定義されていないことを警告しています。
/var/www/ocmal_db_svn/lib/Model/Conflicto.php:[Notice] Undefined property: Model_Conflicto::$entity_code,
これが、「SHOW columns FROM」がテーブル名なしでは不完全であるため、SQLクエリがエラーをスローする理由です。
クラス内でパブリック変数を定義すると、それを初期化する必要がありますね。または何か他の問題が発生していますか?誰かがここでエラーを見ることができますか?私は何を見落としていますか?(これはPHP 5.3 BTWです)
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');