首頁  >  文章  >  後端開發  >  thinkphp公用輸出某個變數

thinkphp公用輸出某個變數

WBOY
WBOY原創
2016-12-01 01:27:351541瀏覽

自己嘗試做一個小項目(用的thinkphp框架),其中關於模板賦值這裡遇到了一個問題:每個模板中​​都有一個header頭部,沒毛病.但是問題來了,在頭部中有個變數,需要輸出到每個引用到它的模板上,這個變數是由控制器內的一個方法產生的:
public function header(){

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

我不可能在每個模板的控制器上都寫一次這個方法,當然也不能把這個方法放到模板控制器的父類控制器上,模板的控制器:
namespace HomeController;

use ThinkController;

class IndexController extends Controller
{

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

}
都是這樣子的,該怎麼把上面那個變數{$lo_id}輸出到每個模板上呢?
或我可能沒有把需求表達清--就是每個模板都能夠輸出某個變數

回覆內容:

自己嘗試做一個小項目(用的thinkphp框架),其中關於模板賦值這裡遇到了一個問題:每個模板中​​都有一個header頭部,沒毛病.但是問題來了,在頭部中有個變數,需要輸出到每個引用到它的模板上,這個變數是由控制器內的一個方法產生的:
public function header(){

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

我不可能在每個模板的控制器上都寫一次這個方法,當然也不能把這個方法放到模板控制器的父類控制器上,模板的控制器:
namespace HomeController;

use ThinkController;

class IndexController extends Controller
{

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

}
都是這樣子的,該怎麼把上面那個變數{$lo_id}輸出到每個模板上呢?
或我可能沒有把需求表達清--就是每個模板都能夠輸出某個變數

把公用部分放到父類別中,子類別繼承就行了

<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->assign('data',$data); 方法的吧。
把這個變數附帶進去就行了,不用單獨寫個方法
2.寫一個基底類別。繼承 Controller ,實作這個方法 , 然後你的頁面再繼承 基類,就不用重複寫了
(一樓已經給出程式碼範例)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Apache2.4和Nginx下一篇:Apache2.4和Nginx