Laravel没有从数据库中获取信息,显示错误

时间:2018-11-12 10:45:01

标签: php laravel tinker

对不起,我是Laravel开发新手。我正在尝试在页面上显示数据库中包含的信息。但是它找不到包含所有数据的变量。我可以在Tinker中看到该信息,但似乎无法显示出来。

我张贴了一些图片,以便您看看。我希望听到您的反馈。

图片: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

4 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

@amirhosseindz说的
当您访问以下网址时:http://127.0.0.1:8000/complaints,因为您正在点击

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

但是当您访问以下网址时:http://127.0.0.1:8000

您正在执行此操作:

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

$complaints不存在的地方

答案 2 :(得分: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

答案 3 :(得分:0)

您没有在控制器中使用正确的功能。试试这个

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