jedna z najdziwniejszych błędu zdarzyło mi się dziś ranolaravel niezdefiniowana zmienna na pierwszej próbie
kiedy otworzyć ostrze pokaz mojego modelu na pierwszej próbie otrzymuję ten
zmiennej Niezdefiniowany: engs (View C: \ wamp64 \ www \ Form \ Resources \ views \ dashboard \ placeShow.blade.php)
Ale kiedy odświeżyć stronę lub otwórz go ponownie wszystko działa
mój kontroler:
public function showPlace($id)
{
$place = Place::find($id);
if (!$place->seen->contains(Auth::user()->id)) {
$place = $place->seen()->save(Auth::user());
}
if ($place->media) {
$media = $place->media;
$engs = $media->where('category', 'engs');
$heritages = $media->where('category', 'heritages');
$estates = $media->where('category', 'estates');
$others = $media->where('category', 'others');
return view('dashboard.placeShow')->with(['place' => $place, 'engs' => $engs, 'heritages' => $heritages, 'estates' => $estates, 'others' => $others]);
}else{
return view('dashboard.placeShow')->with(['place' => $place]);
}
i moje Ostrze:
<ul>
@foreach($engs as $eng)
<li><a target="_blank" href="/{{$eng->href}}">{{$eng->old_name}}</a></li>
@endforeach
</ul>
co jest problemem
'dd ($ place)' before foreach loop i sprawdź wyjście. –
Jest to najprawdopodobniej spowodowane tym, że warunek 'if ($ place-> media)' jest błędny przy pierwszym podejściu, więc przypadek 'else' jest wykonywany, gdy nie przekazujesz zmiennej' engs' do widoku. Spróbuj debugować swój kod, jeśli jest to nieoczekiwane zachowanie, w przeciwnym wypadku sprawdź '@if ($ engs)' w widoku lub przekaż mu pustą tablicę 'engs' w instrukcji else. – Quasdunk