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 に答える