0

抱歉,我是在 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

4 回答 4

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);
}
于 2018-11-12T12:14:47.607 回答
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不存在

于 2018-11-12T12:27:13.947 回答
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
于 2018-11-12T12:33:17.583 回答
0

您没有路由到控制器中的正确功能。试试这个

Route::resource('complaints', 'ComplaintController@index');
于 2018-11-12T13:16:15.100 回答