对不起,我是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
答案 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');