Неопределенная переменная в Laravel 8

#php #laravel

#php #laravel

Вопрос:

У меня проблема с неопределенной переменной в Laravel 8, я на самом деле не понимаю, почему это происходит, потому что я пытался играть с Laravel 8.

Я создал тот же метод и ту же кодировку, но почему-то, когда я попытался запустить кодировку для страницы about , я получил сообщение об ошибке, в котором говорилось

Ошибка исключения Неопределенная переменная: о (Просмотр: D:Serverhtdocsappresourcesviewspagesabout.blade.php )

Почему это происходит? Я не понимаю. Потому что я использую точно такую же кодировку для своих других страниц, и это работает, но когда я пытаюсь открыть about страницу, она внезапно выдает мне ошибку, когда другие страницы в полном порядке без ошибок.

PagesController

 class PagesController extends Controller
{
    public function index()
    {   
        $title = "Welcome to my blog";
        // return view ('pages.index', compact('title')); // first method 

        return view ('pages.index')->with('title',$title); // 2 method 
    }

    public function about()
    {
        $about = "About Page";
        return view ('pages.about')->with('about',$about);
    }
    
    public function services()
    {
        $data = array(
            'title' =>'Services' // array
        );
        return view ('pages.service')-> with($data);
    }
    
    
}
  

about.blade.php

 
@extends('layouts.app')
 
 @section('content')
        <h1>{{$about}} </h1>
        <p> This is about pages </p>
@endsection
  

index.blade.php

 @extends('layouts.app')
 
 @section('content')
        <h1>{{$title}} </h1>
        <p> This is tutorial </p>
@endsection

  

Просто чтобы показать вам ту же кодировку, которую я использую для index и about

Мой маршрут, если кто-нибудь спрашивает

 Route::get('/', [PagesController::class,'index']);
Route::get('/about', [PagesController::class,'about']);
Route::get('/services', [PagesController::class,'services']);
  

index.blade.php
введите описание изображения здесь

about.blade.php
введите описание изображения здесь

Комментарии:

1. вы уверены, что это единственное «действие», которое возвращает это конкретное представление?

2. ДА. Я не получил ошибки для индексной страницы и служебной страницы, за исключением этой about страницы. Моя кодировка для index страницы и about page одинакова. Вот почему я не понимаю, почему я получил эту ошибку. Когда у меня нет проблем с индексной страницей

3. это не то, о чем я спрашиваю… есть ли у вас какие-либо другие действия, которые возвращают это представление с именем 'pages.about' ?

4. если это действие, которое вы выполняете, то я не знаю, почему оно было бы неопределенным на данный момент, извините

5. да, все в порядке. Я тоже немного запутался прямо сейчас. Спасибо

Ответ №1:

 public function about ()
{
    $ about = "About Page";
    return view ('pages.about') -> compact ('about');
}
  

Замените ее как есть и попробуйте: ваша ошибка будет устранена.

Ответ №2:

 php artisan route:cache
  

Мне помогла очистка кэша маршрутов.
Моя переменная была добавлена позже, и данные были выведены из кэша

Комментарии:

1. Пожалуйста, добавьте некоторое объяснение к вашему ответу, чтобы другие могли извлечь из него уроки. Как кэш маршрута связан с этим сообщением об ошибке?

2. Вероятно, переменная была добавлена позже, и данные выводились из кэша

3. ….из кэша маршрутов? Кроме того, пожалуйста, добавьте все пояснения к своему ответу, отредактировав его

Ответ №3:

для людей, все еще страдающих от этой проблемы, перейдите к web.php и убедитесь, что у вас нет дублированного маршрута.