>백엔드 개발 >PHP 튜토리얼 >thinkphp 변수의 공개 출력

thinkphp 변수의 공개 출력

WBOY
WBOY원래의
2016-12-01 01:27:351567검색

(thinkphp 프레임워크를 사용하여) 작은 프로젝트를 직접 수행하려고 했는데 템플릿 할당과 관련된 문제가 발생했습니다. 각 템플릿에 헤더가 있고 그러나 여기서 문제가 발생합니다. 헤더에는 이를 참조하는 각 템플릿에 출력해야 하는 변수가 있습니다. 이 변수는 컨트롤러의 메서드에 의해 생성됩니다.
public function header() {

<code>    $value=$name;
    $this->assign('lo_id',$value);
}</code>

모든 템플릿 컨트롤러에 이 메서드를 한 번 작성하는 것은 불가능합니다. 물론 템플릿 컨트롤러의 상위 클래스 컨트롤러에 이 메서드를 넣을 수는 없습니다.
네임스페이스 HomeController;

ThinkController를 사용하세요.

IndexController 클래스는 Controller를 확장합니다
{

public function index()
{
$this->display("url");
}

}
다 이렇습니다. 위의 변수 {$lo_id}를 각 템플릿에 어떻게 출력하나요?
아니면 제가 요구사항을 명확하게 표현하지 않은 것일 수도 있습니다. 즉, 모든 템플릿에서

답글 내용:

(thinkphp 프레임워크를 사용하여) 작은 프로젝트를 직접 수행하려고 했는데 템플릿 할당과 관련된 문제가 발생했습니다. 각 템플릿에 헤더가 있고 그러나 여기서 문제가 발생합니다. 헤더에는 이를 참조하는 각 템플릿에 출력해야 하는 변수가 있습니다. 이 변수는 컨트롤러의 메서드에 의해 생성됩니다.

public function header() {

<code>    $value=$name;
    $this->assign('lo_id',$value);
}</code>
모든 템플릿 컨트롤러에 이 메서드를 한 번씩 작성하는 것은 불가능합니다. 물론 템플릿 컨트롤러의 상위 클래스 컨트롤러에 이 메서드를 넣을 수는 없습니다.

네임스페이스 HomeController;

ThinkController를 사용하세요.

IndexController 클래스는 Controller를 확장합니다

{

<code>public function index()
{
$this->display("url");
}}</p>
<p>다 이런데 위의 변수 {$lo_id}를 각 템플릿에 어떻게 출력할 수 있나요?<br>아니면 요구사항을 명확하게 표현하지 않았을 수도 있습니다. 즉, 모든 템플릿에서 변수를 출력할 수 있습니다. <br>

                            
                        
            </p>
                                    
<p class="answer fmt" data-id="1020000007296915">공통적인 부분을 상위 클래스에 넣으면 하위 클래스가 이를 상속받을 수 있습니다</p>
<p>
</p>
<pre class="brush:php;toolbar:false"><code><?php
namespace HomeController;

use ThinkController;

class BaseController extends Controller{
    public function header(){
        $this->display("url");
    }
}
</code>
<code><?php
namespace HomeController;

use ThinkController;
use Home/BaseController

class IndexController extends BaseController{
    public function index(){
        $this->header();
    }
}
</code>

1. 모든 페이지에는 $this->ass('data',$data); 메서드가 있습니다.

이 변수만 붙이면 별도의 메소드를 작성할 필요가 없습니다.
2. 기본 클래스를 작성합니다. Controller를 상속하고 이 메서드를 구현하면 페이지가 기본 클래스를 상속하므로 반복해서 작성할 필요가 없습니다.
(코드 예제는 1층에 제공됨)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Apache2.4 및 Nginx다음 기사:Apache2.4 및 Nginx