Ссылки

Ссылки указываются в файле 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