Проверка имени маршрута в Laravel
Иногда перед генерацией URL нужно
убедиться, что маршрут с таким именем
вообще зарегистрирован - например,
в пакете или при условном пункте меню.
Для этого есть Route::has.
Метод принимает имя и возвращает
true или false:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Route;
class PostController extends Controller
{
public function index()
{
if (Route::has('posts.index')) {
dump(route('posts.index'));
}
}
}
?>
В Blade то же самое - можно спрятать ссылку, если маршрута нет:
@if (Route::has('contact'))
<a href="{{ route('contact') }}">contact</a>
@endif
Через Route::has проверьте
наличие маршрута 'contact'
и при наличии выведите его URL.
В Blade покажите ссылку на
'about' только если такой
маршрут существует.