Laravel не получает информацию из базы данных, отображает ошибки

Извините, я новичок в разработке на Laravel. Я пытаюсь показать информацию, содержащуюся в базе данных на моей странице. Но он не может найти переменную, содержащую все данные. Я могу видеть информацию в Тинкере, но я не могу показывать, что это так.

Я разместил несколько фотографий, чтобы вы могли посмотреть. Я хотел бы услышать ваши отзывы.

Изображений: https://imgur.com/a/zLSqSDG

Код:

Маршрут:

<?php

Route::get('/', function () {
return view('index');
});

Route::resource('complaints', 'ComplaintController');

контроллер:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Complaint;

class ComplaintController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$complaints = Complaint::all();

return view('index', compact('complaints'));
}

Лезвие:

@extends('layout')

@section('title','Welcome')

@section('content')

{{-- @foreach ($complaints as $complaint)
<h1>{{ $complaint->title }}</h1>
<p>{{ $complaint->body }}</p>
@endforeach --}}

{{ $complaints }}


@endsection

0

Решение

Вы не направляете к правильной функции в вашем контроллере. Попробуй это

Route::resource('complaints', 'ComplaintController@index');
0

Другие решения

Попробуйте это с другим синтаксисом как ниже:

public function index() {
$complaints = Complaint::all();
return view('index')->with(compact('complaints'));
}

или же

 public function index() {
$complaints = Complaint::all();
return view('index')->with('complaints', $complaints);
}
0

Как сказал @amirhosseindz
Когда вы посещаете этот URL: http://127.0.0.1:8000/complaints это будет работать, потому что ты бьешь

Route::resource('complaints', 'ComplaintController');

Но когда вы посещаете этот URL: http://127.0.0.1:8000

вы попали в это действие:

Route::get('/', function () {
return view('index');
});

где $complaints не существует

0

Вы должны попробовать это:

Ваш контроллер

public function index() {
$complaints = Complaint::all();
return view('index',compact('complaints'));
}

Ваше мнение (index.blade.php)

@extends('layout')

@section('title','Welcome')

@section('content')

@if(isset($complaints))
@foreach ($complaints as $complaint)
<h1>{{ $complaint->title }}</h1>
<p>{{ $complaint->body }}</p>
@endforeach
@endif


@endsection
0
По вопросам рекламы [email protected]