CMS 기반 Yii 응용 프로그램에서 작업 중입니다. 최근에 백엔드 페이지를 마쳤으며 이제 데이터베이스에서 페이지를 가져올 수 있습니다.Yii로 요청한 동적 페이지의 사이트/도메인 컨트롤러를 설정하는 방법
문제는 요청한 URL을 받고 동적 레이아웃을 렌더링하는 것으로 시작됩니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 시작 사이트/도메인 컨트롤러를 사용하고 어떻게 설정합니까?
CMenu로 렌더링은 템플릿에서 잘됩니다. 메뉴가 프론트 엔드에 표시됩니다. 다음은 현재/home 및/company/products처럼 사용하는 메뉴 링크의 예입니다. 그것은 깨끗한 URL을 사용합니다.
<ul id="yw0">
<li class="active"><a href="/home">Home</a></li>
<li><a href="/about_us">About us</a></li>
<li><a href="/company">Company</a></li>
<ul>
<li><a href="/company/products">Products</a></li>
<li><a href="/company/services">Services</a></li>
</ul>
<li><a href="/contact">Contact</a></li>
</ul>
그러나 이것은 한 지점 앞입니다. 레이아웃은 백엔드의 특정 페이지에서 동적으로로드되어야합니다. 모든 페이지는 다른 레이아웃을 가질 수 있습니다. 이 데이터베이스에 대한 열이 있습니다. 예를 들어, URL : "http://example.com/home"은 'protected/views/layouts/main.php'를로드해야합니다.
"http://example.com/company/products"과 같은 링크는 아무데도 가지 않습니다. 이것은 링크가 존재하지 않고 동적으로 생성되기 때문에 명백합니다. 모든 요청에 가서 그 페이지와 레이아웃의 로딩을 처리하는 startController 것을
- 한 메이크업 : 내가 생각하고
나는 두 가지 작업을 수행해야합니다.
- 깨끗한 URL을 사용하여 두 가지 설정을 할 수 있습니다.
그게 전부입니다.
나는 그것이별로 효과가 없을 것이라고 상상할 수 있습니다. 하지만 그것은 두통을 안겨줍니다.
특히 깨끗한 URL입니다. 그들은 항상 나에게 혼란 스럽다.
index.php? r = site/index는 siteController 및 action 인덱스로 이동합니다.
그러나 이것은 내가 원하는 것이 아닙니다. 또한 'urlManager'설정을 시도했지만 컨트롤러 및 동작으로 이동합니다. page/default/view/id /와 같습니다. 하지만 나는 행동으로 가고 싶지는 않지만 시작 콘트롤러는 (다른 레이아웃으로) 요청 된 (다음) 페이지를 데이터베이스로부터로드한다.
내가는 내가 달성하기 위해 좋아하는지 쉽게 이해할 수 희망 config 파일의 main.php 어딘가에 설정 깨끗한 URL을해야합니까. 어떤 도움이라도 대단히 감사합니다.
감사 :
그리고 당신은 다음과 같이 설정할 수 있습니다 전체 컨트롤러 레이아웃
. 컨트롤러의 코드로 레이아웃을 설정하는 것은 실제로 동적이지 않습니다. 하지만 가장 큰 문제는 시작 컨트롤러를 어떻게 만듭니 까? 엔트리 컨트롤러. 그리고 청결한 URL. 나는 url 매니저를 다시 시도했다. 이제 yiitest/frontend/index.php/home으로 이동합니다.보시다시피 데이터베이스의 홈 URL을 사용합니다. 그러나 나는 얻는다 error404 "home"요청을 해결할 수 없습니다. 하지만 어디서 어떻게 엔트리 컨트롤러를 설정해야합니까? "protected/controllers /"의 SiteController 및 pageController가 호출되지 않습니다. 편집 : 처음으로 stackoverflow를 사용하여 죄송합니다. – Minahalmon