개발 꿀팁/PHP

crossphp 프레임워크에서, 템플릿에 다른 템플릿을 로드합니다

Jammie 2022. 10. 28. 11:23
반응형

여기 제가 직접 만든 프로젝트의 응용 장면을 말씀드리겠습니다

요구는 layui 프레임의 layer 컴포넌트로 팝업층 효과를 구현하고 어쿠스틱 PHP로 쉽게 할 수 있지만 crosspphp 프레임 프로세스에 적용하면 매우 번거롭다.

여기서 대략적인 절차를 간단히 설명하겠습니다.

1. 템플릿 파일에 layui의 layer 컴포넌트를 적용하여 팝업 상자 구현

index.tpl.php

2. 우리가 스스로 정의한 경로에서 아주 쉽게 알 수 있듯이, 이 경로는 도메인 루트 아래의 settle 컨트롤러의 kk 방법을 가야 한다.

그리고 템플릿 파일을 사용했기 때문에 컨트롤러에 display 뷰 컨트롤러가 있어야 합니다.

컨트롤러 정의 settle.php

 

display to views\SettleView.php\kk 메서드

class SettleView extends AdminView
{
    /**
     * @param array $data
     */
    function index($data = array())
    {
        $this->renderTpl("settle/index", $data);
    }

    function kk($data=array())
    {
        $this->set([
            'layer'=>'kk'
        ]);
        $this->renderTpl('settle/kk',$data);
    }
}

3.그 다음 renderTpl 메서드를 사용하여 템플릿 파일을 로드합니다.

여기서 우리는 템플릿을 사용하기 때문에 기본 레이아웃 파일을 고려해야 합니다. 여기서 우리는 아예 기본 레이아웃 파일을 사용하지 않고 스스로 레이아웃 파일을 정의해야 합니다. 이 레이아웃 파일은 init.php에서 설정한 기본 templete 경로 아래에 놓아야 합니다.

모듈 이름\templete\kk.layer.php

4. 그런 후에, 우리는 템플릿 파일 kk.tpl.php의 코드를 작성할 수 있다.



이렇게, 우리는 코드를 원래의 php에서 crossphp로 옮기는 과정을 완성했다.

 

반응형