[Laravel] Blade 에서 route 사용하기
Blade 에서 route 사용하기
<a href="{{ route('routeName') }}">Profile</a>
<a href="{{ route('routeName', [params..]) }}">
{!! Html::link(route('routeName', [params..]), 'display text', ['class' => '', 'id'=>''...]) !!}
Activate 처리
특정링크 활성화 클래스 넣기
Route Name 으로 처리
Single Route - By Name
// true if the current route is the dashboard
request()->routeIs('dashboard'); // Route::getCurrentRouteName() 와 유사
// true if the current route is dashboard or dashboard/list
request()->routeIs('dashboard.*')
// true if the current route is dashboard/list but not dashboard/create or dashboard
request()->routeIs('dashboard.list')
// true if the current route is in the expenses group (expenses, expenses/create, expenses/1/edit)
request()->routeIs('expenses.*')
Multiple Routes - By Name
request()->routeIs(['expenses.*', 'bank-accounts.*'])
Url path를 이용한 처리
request()->is('settings/*'); // Request::is('settings/*')
request()->is('settings*');
request()->path(); // 단일 url 만 가능 // Request::path()
<a class="{{ request()->is('settings/*') ? 'active' : '' }}">
<a class="{{ request()->path() == ('settings/') ? 'active' : '' }}">
url()->current() 를 이용한 처리
위의 Route Name 으로 처리할 경우 parameter를 받지 못하는 번그러움이 존재한다.
따라서 파라미터를 받아서 처리하려면 아래와 같이 처리 하여야 한다.
<a class="{{ url()->current() === route('settings', $params) ? 'active' : '' }}"
서브카테고리가 많을 경우 상위 카테고리 활성화 시킬경우 아래방법처럼 미리 선언해 두었도 좋다.
@php
$cscenter = '';
if (
Request::path() == 'cs-center/AccountChange' ||
Request::is('cs-center/Faq/*') ||
) {
$cscenter = 'on';
}
@endphp