2017-11-03 14 views
0

저는 Laravel에 익숙하지 않아서 Laravel 프레임 워크를 더 잘 배울 수있는 프로젝트를 직접 만들었습니다. 저는 무료 HTML 템플릿으로 시작하여 Blade 템플릿으로 바꾸려고했습니다.부모 블레이드 템플릿의 HTML 요소에서 클래스를 변경하는 방법

app.blade.php

이 기본 HTML 구조를 포함하고 JS CSS EN : 나는 다음 있습니다.

<main class="page-content content-wrap"> 
    @include('layouts.topbar') 

    @include('layouts.menu') 

    @yield('content') 
</main><!-- Page Content --> 

topbar.blade.php

이 템플릿은이 질문에 대한 그 재미 있지 포함하는 간단한 topbar을 포함 : 그 외에, 다음과 같은 코드가 포함되어 있습니다.

menu.blade.php는

이 내가 가진 모든 메뉴 항목이 포함되어 있습니다. 이 파일에는 전체 menu-div와 ul 및 li이있는 모든 메뉴 항목이 들어 있습니다. 이 파일에서 저는 ul & li에 "active"클래스를 줄 수 있습니다. 그래서 X 페이지에 있음을 보여줍니다. 표준 ul (비활성)은 클래스 "droplink"이고, 활성화되었을 때 "droplink 활성 오픈 ". 웹 사이트에 대한 전망에서 웹 사이트 자체

에 대한

뷰 나는 app.blade.php을 포함하고 내가보기에 콘텐츠 섹션을 입력합니다. 이제 내 질문은 올바른 페이지가 메뉴에 활성 상태로 표시되도록 어떻게 변경할 수 있습니까? 내 감정은 메뉴에서 정의 할 수 없다고 말합니다. 블레이드 .php,하지만 어디에서 할 수 있습니까? 당신은 활성 클래스를 추가 할 수있는 것보다는 현재 경로와 일치하면

답변

0

이름에 경로의 각각에 대해이 방법을 사용할 수 있습니다 활성 활성 '

CSS를 사용하여 active 클래스를 정의하는 경우

편집

어디서나 당신의 AppServiceProvider.php

public function register() 
    { 
    require_once __DIR__ . '/../Http/Helpers/Navigation.php'; 
} 
+0

답변 해 주셔서 감사합니다. 내 menu.blade.php이 적용하려고했지만 ErrorException : 정의되지 않은 함수를 호출 isActiveRoute(). 먼저 어딘가에 그 함수를 만들어야합니까? –

+0

네, 미안 해요, 내 편집을 참조하십시오 – Onix

+0

예. 당신은 그 기능을 만들 필요가 있고 이것은 작동 할 것입니다 –

1

당신은 menu.blade.php

에서 현재 경로를 확인할 수 있습니다.

<a class="{{ str_contains(request()->url(), '/some-page') ? 'active' : '' }}" href="/some-page">Some Page</a> 
+0

에 등록을 사용하기 위해/응용 프로그램/도우미에 Navigation.php

function isActiveRoute($route, $output = 'active') { if (Route::currentRouteName() == $route) { return $output; } } 

을 도우미 기능을 추가하고 귀하의 회신에 감사드립니다! 내가 제대로 이해한다면 그래서, 나는 경로는 모든 메뉴 항목에 대한 메뉴 항목과 일치하는지 확인하고 활성으로 클래스를 변경해야? –

+0

예, 모든 메뉴 항목을 확인해야합니다. – lne1030

+0

모든 메뉴에 조건을 추가 할 수 있습니다. 경로를 기반으로 활성 클래스를 추가합니다. –

0

당신이

@if(Route::getCurrentRoute()->uri() == '/') <li class="active"></li> @endif 

처럼 그것을 할 수 또한 단지 about-us 나처럼 뭔가에 /을 변경 확인하기 위해 다른 경로 예를 들어

<li class="@if(Route::getCurrentRoute()->uri() == '/')active @endif"></li> 

이처럼 사용할 수 있습니다 네가 필요한 건 뭐든간에.


현재 경로를 확인합니다. 이 경우 현재 경로가 / 또는 root 인 경우 li이 클래스 활성으로 추가됩니다. 필요한 곳 ​​어디에서나 사용할 수 있습니다.

<li class="{{ isActiveRoute('dashboard') }}"> 

하는 '반환합니다

당신은 당신의 경로

->name('homepage'); 그리고 메뉴에 당신이 exmaple이 사용할 수 'layouts.menu'

+0

답변 해 주셔서 감사합니다. OnIX는 isActiveRoute 함수를 사용하여 더 깨끗한 모습을 선택했습니다. –