我正在寻找一个将在Zend_DB中的insert()或update()之前/之后调用的方法?我不想依赖数据库触发器......你能帮助我吗?谢谢!!!
答案 0 :(得分:4)
只需覆盖Table类中的insert()
和update()
方法。
例如:
<?php
class ObjectNameTable extends Zend_Db_Table_Abstract {
protected $_name = 'table_name'; // table name
protected $_primary = 'id';
public function insert(array $data) {
$data['added'] = date('Y-m-d H:i:s');
return parent::insert($data);
}
public function update(array $data, $where) {
$data['updated'] = date('Y-m-d H:i:s');
return parent::update($data, $where);
}
}
如果你想为你的所有表对象做这个,那么你可以有一个它们都扩展的基类,如:
<?php
class BaseTable extends Zend_Db_Table_Abstract {
public function insert(array $data) {
$data['added'] = date('Y-m-d H:i:s');
return parent::insert($data);
}
public function update(array $data, $where) {
$data['updated'] = date('Y-m-d H:i:s');
return parent::update($data, $where);
}
}
然后是一个使用它的课程:
<?php
class ObjectNameTable extends BaseTable {
protected $_name = 'table_name'; // table name
protected $_primary = 'id';
}