Laravel 4.2 プロジェクトに問題があります。私はモデルと関係を持つPhoto
モデルを持っています。Service
Service hasMany Photos
写真(ファイル)はpublic/upload/
ディレクトリに保存されます。delete()
写真を削除すると(のメソッド)、ファイルはサーバーから削除されます (以下のコード) が、Photo
削除するとService
(のメソッド) のデータベース エントリとそのすべての写真 (DB レコード) は削除されますが、トリガーしてもファイルは削除されません。delete()
Service
Service
$this->photos()->delete();
メソッドに配置Log::debug('photos->delete() fired');
し、Photo->delete()
直接呼び出すと起動し、経由で起動しようとするとService->delete()
ログエントリがありません。なぜこのように動作するのかわかりません。誰でも助けることができますか?
これは私のコードですService
:
public function photos()
{
return $this->hasMany('Photo');
}
public function delete()
{
$this->photos()->delete();
parent::delete();
}
そしてPhoto
:
public function delete()
{
Log::debug('photos->delete() fired');
$file = public_path().'/upload/'.$this->filename;
if(File::isFile($file)){
File::delete($file);
}
parent::delete();
}