user

Yasen Sayed

6 Mar 2022

Undefined Variable problem on Laravel 9.x

Laravel

 

I'm trying to get a my title variable from my control page and display it on the about page. I don't think I have a typo but it might me I'm not sure.

Here is my control page code;

class PagesController extends Controller
{
 public function index(){
 $title = 'Welcome to laravel';
 return view ('pages.index')->with('title', $title);
 }
 public function about(){
 $title = 'About us';
 return view ('pages.about')->with('title', $title);
 }
 public function services(){
 $title = 'The services';
 return view ('pages.services')->with('title', $title);
 }
}

In this page index and services functions works fine but I can't get the about page.

Here is my display pages;

 

This is Index page

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

 

This is about page

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

The error I have is:

Please let me know if my question is not clear.

 

 

 

Comments

Eslam Zedan

6 Mar 2022

Best Answer

best answer

since you are returning just the title therefore there is no need to call any verbs, rather you should directly call the view.

route::view('/about','Pagecontroller@about');

or

pass the parameter by compact.

 return view ('pages.index', compact('title'));

or

return view ('pages.index', ['title' => $title]);

Replies

Yasen Sayed

6 Mar 2022

Thanks, Worked successfully.

Mohamed Atef

6 Mar 2022

githubgithubgithub

you can use 

return view ('pages.index', ['title' => $title]);

this is the best way to send the variable to the blade files

© 2024 Copyrights reserved for web-brackets.com