переменная в контроллере не передана для просмотра с использованием with () - PullRequest
2 голосов
/ 30 июня 2019

Я пытаюсь передать переменную $image на мой взгляд (gallerij.blade.php), но она не будет работать.Я получаю сообщение об ошибке: «Неопределенная переменная: изображение».Я не знаю, как решить этот мир.

Я уже искал решение по переполнению стека, но не смог найти решение для своего ответа.Я также посмотрел на веб-сайте Laracast.Но я не мог найти ответ там.Наконец, я также попросил другого программиста посмотреть, сможет ли он найти решение, но он также не знал, что происходит не так.

Мой контроллер:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\gallerijs;

class GalerijController extends Controller
{
    public function Retrieve(){
    $g = gallerijs::find(1);
    $image = chunk_split(base64_encode($g->afbeelding));
    return view('gallerij ')->with($image);
}
}

Мой взгляд:

@extends ('Layout')
@section('title')
    Galerij
@endsection

@section('content')


<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

</head>
<body>

<div id="demo" class="carousel slide" data-ride="carousel">

  <!-- Indicators -->
  <ul class="carousel-indicators">
    <li data-target="#demo" data-slide-to="0" class="active"></li>
    <li data-target="#demo" data-slide-to="1"></li>
    <li data-target="#demo" data-slide-to="2"></li>
  </ul>

  <!-- The slideshow -->
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="{{asset('Pictures/'.$image)}}" alt="Los Angeles" width="1100" height="500">
    </div>
    <div class="carousel-item">
      <img src="{{asset('Pictures/loremipsum2.jpg')}}" alt="Chicago" width="1100" height="500">
    </div>
    <div class="carousel-item">
      <img src="{{asset('Pictures/loremipsum3.jpg')}}" alt="New York" width="1100" height="500">
    </div>
  </div>

  <!-- Left and right controls -->
  <a class="carousel-control-prev" href="#demo" data-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </a>
  <a class="carousel-control-next" href="#demo" data-slide="next">
    <span class="carousel-control-next-icon"></span>
  </a>
</div>

</body>
</html>



@endsection

Я пытаюсь использовать переменную в первом img src.

Надеюсь, я дал вам достаточно информации, чтобы вы могли помочь мне найти решение.

Ответы [ 2 ]

1 голос
/ 30 июня 2019

изменить:

return view('gallerij ')->with($image);

на:

return view('gallerij ', compact('image'));

Я считаю, что это самый чистый способ передачи переменных в представление при сохранении имени переменной.

Вы можете использовать with(), но вы должны повторить имя переменной (т.е.: ->with('image', $image))

Или вы можете определить массив переменных для передачи в качестве второго аргумента для просмотра (т.е.: view('view.template', ['image' => $image]).

Вот почему компактная функция пригодится.Он создаст массив из списка имен переменных, используя имя переменной в качестве ключа (то есть: compact('image') создает ['image' => $image])

0 голосов
/ 30 июня 2019

Пожалуйста, пользователь как массив изображений как

public function Retrieve(){
    $g = gallerijs::find(1);
    $image = chunk_split(base64_encode($g->afbeelding));
    return view('gallerij ')->with('image',$image);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...