#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']);
Комментарии:
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 и убедитесь, что у вас нет дублированного маршрута.