为啥 app_model.php 中的 afterSave() 总是触发?

Posted

技术标签:

【中文标题】为啥 app_model.php 中的 afterSave() 总是触发?【英文标题】:Why is afterSave() inside app_model.php always fires?为什么 app_model.php 中的 afterSave() 总是触发? 【发布时间】:2011-01-05 14:58:38 【问题描述】:

为什么 app_model.php 中的 afterSave() 总是在每次页面加载时触发?

class AppModel extends Model 

    public $cacheQueries = true;    
    var $actsAs = array('Containable');

    function __construct($id = false, $table = null, $ds = null) 
        parent::__construct($id, $table, $ds);
    

    function afterSave($created) 
        // Is used for better workflow when saving data
        // Just for update
        if(!$created) 
            $_SESSION['redirect_update'] = true;
            $_SESSION['redirect_to']     = $_SESSION['form_referer'];
            debug('im always show on every page load!');
        
    


【问题讨论】:

【参考方案1】:

刚刚检查了全新安装的 Cake。 AppModel 不会在每次页面加载时触发 afterSave。您的应用程序必须在您的一个控制器中的某个模型上调用 save(可能是您的 AppController,因为它是为每个页面调用的,或者检查您的 beforeFilters)。

【讨论】:

以上是关于为啥 app_model.php 中的 afterSave() 总是触发?的主要内容,如果未能解决你的问题,请参考以下文章

为啥将 * 选择器与 *::before 和 *::after 结合使用 [重复]

为啥在 ::after 伪元素上需要一个空的 `content` 属性? [复制]

为啥 :before 和 :after 伪元素不能与 `img` 元素一起使用? [复制]

为啥在使用 unicode 时我不能在 :before :after 内容之后使用空格

为啥这个按钮在 Firefox 中的对齐方式不同?

SQL 触发器中的 FOR/AFTER