Ссылки
Ссылки указываются в файле routes/web.php.
# routes/web.php
use App\Http\Controllers\NewsController;
Route::get('news/', [NewsController::class, 'index']);
Route::get('news/{id}', [NewsController::class, 'show']);
Также их можно группировать:
Route::controller(NewsController::class)->group(function() {
Route::get('news/', 'index');
Route::get('news/{id}', 'show');
});
Ссылкам можно давать имена через метод name(), чтобы по ним выводить сами ссылки.
Route::get('news/', [NewsController::class, 'index'])->name('news');
В шаблонах теперь можно выводить ссылки через route().
@if (Route::has('news'))
<a href="{{ route('news') }}">Новости</a>
@endif
Также route() доступен в PHP-коде.
route('news'); # /news/
route('newsPage', ['id' => 5]); # /news/5/
// если параметр в роутах не указан, то выводится как строка запроса
route('newsPage', ['id' => 5, 'sort' => 'created']); # /news/5/?sort=created
Преимущество данного способа в том, что если будет изменена ссылка, то она автоматически обновится на других страницах.
Также если будет отключена какая-нибудь страница (например страница с регистрацией), то ссылка на эту страницу автоматически перестанет выводиться.
После того, как будут настроены ссылки, в целях оптимизации рекомендуется их закешировать через команду ниже:
php artisan route:cache
Если будут добавлены или удалены страницы, то кеш надо будет сбросить через команду:
php artisan route:clear
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта
