ErrorException Неопределенная переменная при попытке показать данные в представлении - PullRequest
0 голосов
/ 29 июня 2019

Итак, я пытался отобразить запись из базы данных с помощью laravel, и я определил переменную в операторе @foreach, но когда я ее запускаю, он показывает ErrorException Undefined variable, хотя все переменные уже внутри оператора foreach, яотсутствует функция метода в моем контроллере?

это представление welcome.blade.php

<div class="blog-item">       
                        <div class="blog-text text-box text-white">
                            @foreach ($guestbooks as $guestbook)    
                            <div class="top-meta">{{ Carbon\Carbon::parse($guestbook->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                            <h3>{{ $guestbooks->name }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($guestbook->message, 50, '...') !!}</p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                        </div>
                    </div>
                    <!-- Blog item -->
                    <div class="blog-item">       
                        <div class="blog-text text-box text-white">   
                            <div class="top-meta">{{ Carbon\Carbon::parse($guestbook->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                            <h3>{{ $guestbook->name }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($guestbook->message, 50, '...') !!}</p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                        </div>
                    </div>
                    <!-- Blog item -->
                    <div class="blog-item">       
                        <div class="blog-text text-box text-white">   
                            <div class="top-meta">{{ Carbon\Carbon::parse($guestbook->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                            <h3>{{ $guestbook->name }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($guestbook->message, 50, '...') !!}</p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                            @endforeach
                        </div>
                    </div>

это контроллер GuestbookController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Guestbook;

class GuestbookController extends Controller
{
    public function index()
    {
        $guestbooks = Guestbook::get();
        return view('post.post_textarea',[
            'guestbooks' => $guestbooks
        ]);
    }

    public function store(Request $request)
    {
        Guestbook::create([
            'name' => $request->name,
            'message' => $request->message
        ]);
        return redirect()->back();
    }
}

и этоэто маршруты

Route::get('/posting','GuestbookController@index')->name('guestbook');
Route::post('/posting','GuestbookController@store')->name('guestbook.store');

Ответы [ 2 ]

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

Я полагал, что проблема была в том, что есть два маршрута, перенаправляющих на тот же URL, что и Route::get('/posting','GuestbookController@index')->name('guestbook');, поэтому я удаляю другой, и это работает, спасибо за эту опечатку @Denis Ćerić

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

Ваша GuestbookController функция index() возвращает представление с именем post.post_textarea и передает вашу переменную $ guestbook этому представлению, в то время как вы пытаетесь получить эту переменную в вашем welcome.blade.php.

Измените свою индексную функцию, чтобы она возвращала представление приветствия следующим образом:

public function index()
    {
        $guestbooks = Guestbook::get();
        return view('welcome',[
            'guestbooks' => $guestbooks
        ]);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...