Laravel 4.2プロジェクトに問題があります。 私はPhoto
モデルとService
モデルとの関係がService hasMany Photos
です。Laravel delete method:関連するファイルを削除する方法
写真(ファイル)はpublic/upload/
ディレクトリに格納されます。 私は写真(Photo
でメソッドdelete()
)を削除すると、ファイルがサーバーフォーム除去する(コードは、以下に示す)が、私はService
とすべてのためのService
(方法Service
でdelete()
)データベースのエントリを削除すると、それは写真(DBレコード)が削除されているのですが、ファイル私はPhoto->delete()
方法でLog::debug('photos->delete() fired');
を置い$this->photos()->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();
}
それは私が直接 'フォト>(削除モデルを削除した場合')取り組んでいるが、それは経由して起動されたとき'Service()'( '$ this-> photos() - > delete()')それはまったく動かない。 – violator667