(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층에 제공됨)