【问题标题】:Zend framework - Run something after the execution of a modelZend 框架 - 在模型执行后运行一些东西
【发布时间】:2013-12-02 12:06:13
【问题描述】:

我有一个名为 MyWork_Model_Base 的通用模型,它扩展了 Zend_Db_Table_Abstract。然后我所有的模型都扩展了 MyWork_Model_Base。有没有办法可以向这个 Model_Base 添加代码,以便在模型函数执行后每次运行它?

谢谢

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    您可以将代码添加到MyWork_Model_Base 类的__destruct 函数中。每次执行函数都会执行析构函数

    class Model_User extends MyWork_Model_Base
    {
    
        public function getUserDetails()
        {
            $select = $this->select();
    
            $this->column = 'user_id';
            $this->value = '9999';
    
            return $this->fetchAll($select);
        }
    
    }
    
    
    
    class MyWork_Model_Base extends Zend_Db_Table_Abstract
    {
      .
      .
      .
      public function fetchAll($select)
      {
        return parent::fetchAll($select);
      }
      public function __destruct()
      {
        echo 'Destruct Called : '.$this->column.'//'.$this->value.' <br/>';
      }
    }
    

    【讨论】:

    • 这个 __destruct() 是否也能找出 $row 或者至少是被修改/创建/删除的行的 id 还是我需要将这些信息传递给它?
    • 可以在被执行的函数中设置值,在__destruct中使用
    • 因为它有一个变量 $_id 并将其保存在函数中,并在 __destruct() 中调用 $this->_id?
    • 是的......我已经更新了答案。这是你要找的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多