To jest AdminController.php
:
<?php
namespace AppHttpControllers;
use Response;
use IlluminateSupportFacadesDB;
use AppCaption;
use AppImage;
use AppHttpControllersController;
class AdminController extends Controller
{
public function admin() {
$images = Image::paginate();
return view("admin",[ "$images" => $images]);
}
}
A to jest admin.blade.php
:
@extends("template")
@section("title")
Admin Page
@endsection
@section("header")
@endsection
@section("main")
@if (Auth::check())
@foreach ($images as $image)
<p value="{{$image->id}}">{{$image->content}}</p>
<form action="image/{{$image->id}}/delete" method="post">
<button type="submit">Delete caption</button>
</form>
<form action="image/{{$image->id}}/approve" method="post">
<button type="submit">Accept image</button>
</form>
@endforeach
@else
<p>Login first</p>
@endif
@endsection
@section("footer")
@endsection
Dlaczego otrzymuję następujący błąd?
ErrorException in 408148d5409ae6eebf768dc5721bd0d1d9af48af.php line 9:
Undefined variable: images (View: /Users/sahandz/Documents/School/Singapore/CS3226/backend/resources/views/admin.blade.php)
$images
jest jasno zdefiniowany w moim kontrolerze.
Dzięki.
Odpowiedzi:
5 dla odpowiedzi № 1Użyłeś $images
jako nazwę zmiennej podczas przekazywania danych do widoku. Powoduje to utworzenie przez ostrze zmiennej o nazwie $$images
.
return view("admin",[ "images" => $images]);
spowoduje, że widok utworzy zmienną o nazwie $images
0 dla odpowiedzi nr 2
Spróbuj przekazać takie dane.
$images = Image::paginate();
return view("admin")->with("images",$images);
Zasadniczo nie musisz używać $
w nazwie zmiennej.
0 dla odpowiedzi № 3
Twój kod powinien być taki
public function admin() {
$images = Image::paginate();
return view("admin",[ "images" => $images]);
}
Dlaczego używasz [ "$images" => $images]
. to jest problem.
0 dla odpowiedzi nr 4
Możesz użyć tej metody również do przekazania swoich danych do wglądu
return view("admin",compact("images"));