laravel 5 템 플 릿 테마 기능 구현(계속)
원래 response 매크로 를 정의 하 는 방식 은 실 현 될 수 있 지만,나 는 더욱 규범 화 된 방법 을 사용 하기 로 결정 했다.
laravel 의 View 클래스 에 하나의 방법 이 있 습 니 다.View:addNamespace,이 방법 은 매 뉴 얼'확장 팩 개발'절 에서 언급 되 었 습 니 다.Laravel 매 뉴 얼 의 레이아웃 논리 가 혼 란 스 럽 습 니 다.이 방법 은'보기'장 에 두 어야 한 다 는 것 을 설명 합 니 다.다른 이 야 기 는 하지 않 겠 습 니 다.먼저 이 방법 을 말씀 드 리 겠 습 니 다.
laravel 렌 더 링 보기
View::make('namespace::path');
// View::make('default::index.index');
namespace 를 어떻게 정의 합 니까?바로 이 방법 을 통 해:
View::addNamespace('default',app_path().'/views/default');
똑똑 한 친 구 는 이미 느 꼈 을 것 이다.이 기능 은 우리 가 템 플 릿 의 주제 화 를 실현 하 는 데 도움 을 줄 수 있다.예 를 들 어:
//
View::addNamespace('blue',app_path().'/views/blue');
//
View::addNamespace('red',app_path().'/views/red');
//
View::addNamespace('green',app_path().'/views/green');
다음 호출:
// index.index
View::make('green::index.index');
그러나 우 리 는 뷰::addNamespace 방법 을 통 해 이 몇 가지 주제 의 경로 맵 을 먼저 등록 하고 렌 더 링 할 때 namespace 를 명시 적 으로 지정 해 야 합 니 다.저 는 불편 합 니 다.View 는 기본 namespace 를 설정 할 수 없 습 니까?이렇게 해서 우 리 는 한 번 만 설정 하면 예 를 들 면:
// __construct
View::setDefaultNamespace('blue',app_path().'/views/blue');
다음:
// View::make('blue::index.index');
View::make('index.index');
더 나 아가 저 희 는 배경 을 통 해 테 마 를 설정 하고 테마 이름 을 데이터베이스 에 쓰 며 프론트 데스크 에서 테 마 를 읽 고 설정 할 수 있 습 니 다.
// ,Option
$theme = Option::getByKey('theme');
View::setDefaultNamespace($theme,app_path().'/views/'.$theme);
이렇게 해서 백 스테이지 전환 주 제 를 실현 했다.그러나 안 타 깝 게 도 View 는 setDefault Namespace 방법 이 없 기 때문에 저 는 하나의 프로젝트 를 만 들 기로 결 정 했 습 니 다.laravel 을 대상 으로 핵심 라 이브 러 리 확장 을 하기 로 결 정 했 습 니 다.이 기능 은 이미 실현 되 었 습 니 다.제 프로젝트 주 소 를 볼 수 있 습 니 다.src/Keepey/Laravel/View/사용 방법 을 볼 수 있 습 니 다.
자,laravel 템 플 릿 테마 기능 의 실현 에 대해 여기까지 논 의 했 습 니 다.여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.