Метод current
Метод current класса Route позволяет получить объект текущего маршрута, который соответствует обрабатываемому HTTP-запросу. Метод возвращает экземпляр класса IlluminateRoutingRoute или null, если текущий маршрут не определён. Обычно используется внутри контроллеров или промежуточного слоя для получения информации о текущем маршруте, его имени, параметрах или действии.
Синтаксис
<?php
$route = Route::current();
?>
Пример
Давайте получим объект текущего маршрута и выведем его имя:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesRoute;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index(Request $request)
{
$route = Route::current();
if ($route) {
echo $route->getName();
} else {
echo 'Route not found';
}
}
}
?>
Результат выполнения кода при обращении к маршруту с именем 'articles.index':
"articles.index"
Пример
Давайте получим URI текущего маршрута:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesRoute;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function show(Request $request, $id)
{
$route = Route::current();
if ($route) {
echo $route->uri();
} else {
echo 'Route not found';
}
}
}
?>
Результат выполнения кода для маршрута '/articles/5':
"articles/{id}"
Пример
Давайте получим параметры текущего маршрута:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesRoute;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function edit(Request $request, $id)
{
$route = Route::current();
if ($route) {
$parameters = $route->parameters();
print_r($parameters);
} else {
echo 'Route not found';
}
}
}
?>
Результат выполнения кода для маршрута '/articles/5/edit':
["id" => 5]
Пример
Давайте проверим, соответствует ли текущий маршрут определённому имени:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesRoute;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index(Request $request)
{
$route = Route::current();
if ($route && $route->named('articles.index')) {
echo 'Current route is articles.index';
} else {
echo 'Current route is not articles.index';
}
}
}
?>
Результат выполнения кода при обращении к маршруту 'articles.index':
"Current route is articles.index"