Reputation: 505
UserController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Contracts\View\View;
class UserController extends Controller
{
// Changes depending on the time of day.
public function boot() {
if(date('H:i') > '00:00' && date('H:i') < '12:00'):
$message = "Good Morning, ";
elseif(date('H:i') > '12:00' && date('H:i') < '17:00'):
$message = "Good Afternoon, ";
else:
$message = "Good Evening, ";
endif;
// THIS NEEDS TO SHOW ON ALL PAGES
return view('/', ['message' => $message]);
}
}
layout.blade.php
{{ $message }}
What I want my code to do is to show my message on all pages. So far, it only shows on one page, which is '/' so just the homepage works.
I've tried replaced '*' but that doesn't work.
Any help would be appreciated!
Upvotes: 0
Views: 46
Reputation: 33186
Or you could create a blade view that shows this message and include it where ever needed:
message.blade.php
@if(date('H:i') > '00:00' && date('H:i') < '12:00')
Good Morning
@elseif(date('H:i') > '12:00' && date('H:i') < '17:00')
Good Afternoon
@else
Good Evening
@endif
And now in any other view, just use: @include('message')
Upvotes: 1
Reputation: 3065
In this way the message variable will be available to your controller's every methods.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Contracts\View\View;
class UserController extends Controller
{
public function __construct()
{
if(date('H:i') > '00:00' && date('H:i') < '12:00'):
$message = "Good Morning, ";
elseif(date('H:i') > '12:00' && date('H:i') < '17:00'):
$message = "Good Afternoon, ";
else:
$message = "Good Evening, ";
endif;
View::share('message', $message);
}
}
Upvotes: 1