у меня есть две модели, которые находятся в одном для многих отношениях:Удалите изображения, которые находятся в elequent отношениях
Tour.php
public function photos()
{
return $this->hasMany('App\Photo');
}
Photo.php
public function tour()
{
return $this->belongsTo('App\Tour');
}
Я хочу удалить эти фотографии из папки, когда тур, связанный с этими фотографиями, удаляется. Эти фотографии расположены идентификатор в (общественных/изображений/слайдов)
Это то, что я пытался сделать:
public function destroy($id)
{
$tour = Tour::find($id);
$tour->country()->detach();
File::delete(public_path('/images/featured_image/'.$tour->featured_image));
File::delete(public_path('/images/banner/'.$tour->banner));
File::delete(public_path('/images/slides/'.$tour->photos->path));
$tour->delete();
Session::flash('success', 'The tour is sucessfully deleted.');
return redirect()->route('tours.index');
}
И я получил ошибку:
Undefined property: Illuminate\Database\Eloquent\Collection::$path
Ни один из них выше сделал работу и не вернулся какой-либо ошибки. –
@ ZacharyDale, то что-то не так, скопируйте где-нибудь свою модель кода/контроллер (например, pastebin или что-то еще), а также один пример '$ photo-> path' – Froxz
Я понял, что'/images/slides/7212637200_ba233060a3_o.jpg' сохраняется в моем db colum 'path'. Я изменил свой код на 'foreach ($ tour-> photos() как $ photo) { Файл :: delete (public_path ($ photo-> path)); } ', но это также не удаляет изображение. –