Php Zend框架模型中是否有beforeSave或afterSave方法?

Php Zend框架模型中是否有beforeSave或afterSave方法?,php,zend-framework,Php,Zend Framework,Zend框架模型中是否有beforeSave或afterSave方法 class VendorReject extends Zend_Db_Table { protected $_name = 'VendorRejects'; } 您可以重写Zend\u Db\u Table\u Row\u Abstract的\u insert()和\u postInsert()方法 因此,创建行类,例如: class Row_VendorReject extends Zend_Db_Table_Ro

Zend框架模型中是否有beforeSave或afterSave方法

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';
}

您可以重写Zend\u Db\u Table\u Row\u Abstract的
\u insert()
\u postInsert()
方法

因此,创建行类,例如:

class Row_VendorReject extends Zend_Db_Table_Row
{
    protected function _insert()
    {
        $rejectionDate = $this->rejection_date;
        // do something here

        parent::_insert();
    }

    protected function _postInsert()
    {
        parent::_postInsert();

        // some postprocessing
    }
}
然后用新类名填充模型中的
\u rowClass
字段:

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';
    protected $_rowClass = 'Row_VendorReject';
}
现在,每次对行调用
save()
,这些方法也将被调用(在插入/更新之前和之后)


如果您需要这种更新功能,还有
\u update()
\u positionpdate()
方法。

您可以覆盖Zend\u Db\u Table\u Row\u Abstract的
\u insert()
\u postInsert()
方法

因此,创建行类,例如:

class Row_VendorReject extends Zend_Db_Table_Row
{
    protected function _insert()
    {
        $rejectionDate = $this->rejection_date;
        // do something here

        parent::_insert();
    }

    protected function _postInsert()
    {
        parent::_postInsert();

        // some postprocessing
    }
}
然后用新类名填充模型中的
\u rowClass
字段:

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';
    protected $_rowClass = 'Row_VendorReject';
}
现在,每次对行调用
save()
,这些方法也将被调用(在插入/更新之前和之后)


如果您需要这种更新功能,还有
\u update()
\u postate()
方法。

另一种简单的方法是覆盖模型插入/更新方法

在保存示例代码之前:

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
       // Add your code here that will execute before insert operation

        return parent::insert($data);
    }
}
class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
        parent::insert($data);

        // Add your code here that will execute after insert operation

        return;

    }
}
保存示例代码后:

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
       // Add your code here that will execute before insert operation

        return parent::insert($data);
    }
}
class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
        parent::insert($data);

        // Add your code here that will execute after insert operation

        return;

    }
}

另一种简单的方法是重写模型插入/更新方法

在保存示例代码之前:

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
       // Add your code here that will execute before insert operation

        return parent::insert($data);
    }
}
class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
        parent::insert($data);

        // Add your code here that will execute after insert operation

        return;

    }
}
保存示例代码后:

class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
       // Add your code here that will execute before insert operation

        return parent::insert($data);
    }
}
class VendorReject extends Zend_Db_Table
{
    protected $_name = 'VendorRejects';

    // Override parent method
    public function insert(array $data)
    {
        parent::insert($data);

        // Add your code here that will execute after insert operation

        return;

    }
}