Метод route
Метод route класса Request применяется к объекту запроса и возвращает либо значение параметра маршрута по его имени, либо полный экземпляр маршрута Route, если вызван без аргументов. Первым параметром передаётся имя параметра маршрута, вторым - значение по умолчанию, если параметр отсутствует.
Синтаксис
<?php
$request->route($key, $default);
?>
Пример
Давайте получим значение параметра 'id' из текущего маршрута в контроллере:
<?php
use App\Http\Controllers\ArticleController;
Route::get('/articles/{id}', [ArticleController::class, 'show']);
?>
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function show(Request $request)
{
$id = $request->route('id');
echo $id;
}
}
?>
Результат выполнения кода при переходе на адрес /articles/5:
"5"
Пример
Давайте получим значение параметра с указанием значения по умолчанию:
<?php
use App\Http\Controllers\ArticleController;
Route::get('/articles/{id}', [ArticleController::class, 'show']);
?>
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function show(Request $request)
{
$id = $request->route('id', 1);
echo $id;
}
}
?>
Результат выполнения кода при переходе на адрес /articles/5:
"5"
Результат выполнения кода при переходе на адрес /articles (без параметра):
"1"
Пример
Давайте получим полный экземпляр маршрута:
<?php
use App\Http\Controllers\ArticleController;
Route::get('/articles/{id}', [ArticleController::class, 'show'])->name('article.show');
?>
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function show(Request $request)
{
$route = $request->route();
echo $route->getName();
}
}
?>
Результат выполнения кода:
"article.show"