/ / Laravel: niezdefiniowana zmienna w widoku blade - php, html, laravel, view, blade

Laravel: Niezdefiniowana zmienna w widoku ostrza - php, html, laravel, view, blade

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)

$imagesjest jasno zdefiniowany w moim kontrolerze.

Dzięki.

Odpowiedzi:

5 dla odpowiedzi № 1

Uż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"));