laravel 7 中带有 forelse 循环的未定义变量

Undefined variable with forelse loop in laravel 7

我在@forelse($services...) 行收到此错误:

Undefined variable: services (View: C:\xampp\htdocs\website\resources\views\services.blade.php)

错误:https://easyupload.io/yrmnnf)

我在 youtube 上关注 Coder 的选择 Laravel 6 tut 系列,似乎有更多人遇到此问题。 我已经检查了代码 50 次,它与 youtubevideo 相同。 这是我的 services.blade.php:

@extends('app')

@section('title', 'Services')

@section('content')
    <h1>Welcome to Laravel 6 from Services</h1>

    <ul>
        @forelse($services as $service)
            <li>{{ $service }}</li>
        @empty
            <li>No services available.</li>
        @endforelse
    </ul>
@endsection

这是控制器:

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller {
    public function about() {
        return view('about');
    }

    public function services() {
        $services = [
            'Cool Service',
            'Another Cool Service',
        ];

        return view('services', compact('services'));
    }
}

你的路线是错误的,你只显示一个视图而没有使用你的控制器,所以 $services 根本没有在 services.blade.php 中设置。

改变

Route::view('/services', 'Services');

Route::get('services', 'HelloController@services');

在您的 routes/web.php 文件中。

PS:您的路线文件中已有该路线,但该行已被注释