Ich habe zwei Modelle, die in einer zu viele Beziehung sind:Bilder löschen, die in elequent Beziehung sind
Tour.php
public function photos()
{
return $this->hasMany('App\Photo');
}
Photo.php
public function tour()
{
return $this->belongsTo('App\Tour');
}
Ich möchte löschen Diese Fotos aus dem Ordner, wenn die Tour zu diesen Fotos gehört, werden gelöscht. Diese Fotos befinden ID in (public/images/Dias)
Das ist, was ich zu tun versucht:
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');
}
Und ich habe Fehler:
Undefined property: Illuminate\Database\Eloquent\Collection::$path
Keine von diesen über die Arbeit geleistet haben noch zurück einen Fehler löschen. –
@ZacharyDale dann Ihr etwas falsch machen, kopieren Sie irgendwo Ihr Code Model/Controller (wie Pastebin oder etwas) und auch ein Beispiel für $ Foto-> Pfad – Froxz
Ich erkannte, dass '/ images/slides/7212637200_ba233060a3_o.jpg' gespeichert ist in meinem db colum 'Pfad'. Ich habe meinen Code in 'foreach ($ tour-> photos() als $ photo) geändert. { File :: delete (public_path ($ photo-> path)); } 'aber das löscht das Bild auch nicht. –