Our old website CSS was set up so that the body
tag had an id of the controller name and a class of the action name, using Zend Framework 1. Now we're switching to Laravel 5. I found a way to get the action name through the Route
class, but can't find a method for the controller name. I don't see anything in the Laravel docs like this. Any ideas?
This is how you do with action. You inject the Route class, and then call:
$route->getActionName()
.
I'm looking for something similar for controllers. I've checked the entire route class and found nothing.
I will simply use as bellow
$request->route()->getActionMethod()
If your layout is a Blade template, you could create a view composer that injects those variables into your layout. In app/Providers/AppServiceProvider.php add something like this:
You will then have two variables available in your layout template:
$controller
and$action
.To get something like PostController try following ...
$matches[1] includes the first group while $matches[0] includes everything matched. So also the @ which isn't desired.
I use a simple solution. You can test and use it in everywhere, also your views: