2

我想在删除数据库中的记录后删除文件。因为我使用来自相关模型的一些数据来构建图像路径,所以我需要在 beforeDelete() 中获取这些数据。

function beforeDelete() {
    $info = $this->find('first', array(
        'conditions' => array('Media.id' => $this->id),
    ));
}

function afterDelete() {
   unlink(WWW_ROOT . 'img/photos/' . $info['News']['related_id'] . "/" . $info['Media']['file']);       
}

如何正确访问$info数组afterDelete()

4

1 回答 1

11

您可以简单地在方法范围之外声明这个 var。

private  $info;
function beforeDelete() {
$this->info = $this->find('first', array(
    'conditions' => array('Media.id' => $this->id),
));
}

function afterDelete() {
   unlink(WWW_ROOT . 'img/photos/' . $this->info ['News']['related_id'] . "/" . $this->info ['Media']    ['file']);       
}
于 2013-02-03T19:26:25.757 回答