Heim  >  Artikel  >  Backend-Entwicklung  >  thinkphp öffentliche Ausgabe einer Variablen

thinkphp öffentliche Ausgabe einer Variablen

WBOY
WBOYOriginal
2016-12-01 01:27:351541Durchsuche

Ich habe versucht, selbst ein kleines Projekt durchzuführen (mit dem Thinkphp-Framework), und bin auf ein Problem bei der Vorlagenzuweisung gestoßen: In jeder Vorlage gibt es einen Header , nichts Falsches. Aber hier kommt das Problem. Es gibt eine Variable im Header, die an jede Vorlage ausgegeben werden muss, die darauf verweist. Diese Variable wird von einer Methode im Controller generiert:
public function header() {

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

Es ist mir unmöglich, diese Methode einmal auf jedem Template-Controller zu schreiben. Natürlich kann ich diese Methode nicht auf dem übergeordneten Klassencontroller des Template-Controllers platzieren:
Namespace HomeController;

ThinkController verwenden;

Klasse IndexController erweitert Controller
{

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

🎜>Es ist alles so, wie kann ich die obige Variable {$lo_id} an jede Vorlage ausgeben?
Oder vielleicht habe ich die Anforderungen nicht klar ausgedrückt – das heißt, jede Vorlage kann eine Variable ausgeben

Antwortinhalt:

Ich habe versucht, selbst ein kleines Projekt durchzuführen (mit dem Thinkphp-Framework), und bin auf ein Problem bei der Vorlagenzuweisung gestoßen: In jeder Vorlage gibt es einen Header , nichts Falsches. Aber hier kommt das Problem. Es gibt eine Variable im Header, die an jede Vorlage ausgegeben werden muss, die darauf verweist. Diese Variable wird von einer Methode im Controller generiert:

public function header() {

<code>    $value=$name;
    $this->assign('lo_id',$value);
}</code>
Es ist mir unmöglich, diese Methode einmal auf jedem Template-Controller zu schreiben. Natürlich kann ich diese Methode nicht auf dem übergeordneten Klassencontroller des Template-Controllers platzieren:

Namespace HomeController;

ThinkController verwenden;

Klasse IndexController erweitert Controller

{

<code>public function index()
{
$this->display("url");
}🎜>Es ist alles so, wie kann ich die obige Variable {$lo_id} an jede Vorlage ausgeben?</p>
<p>Oder vielleicht habe ich die Anforderungen nicht klar ausgedrückt – das heißt, jede Vorlage kann eine Variable ausgeben <br>

                            
                        
            <br>
                                    
</p>Fügen Sie die gemeinsamen Teile in die übergeordnete Klasse ein und die Unterklassen können sie erben<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. Jede Seite verfügt über die Methode $this->assign('data',$data);

Hängen Sie einfach diese Variable an. Es ist nicht erforderlich, eine separate Methode zu schreiben.

2. Schreiben Sie eine Basisklasse. Inherit Controller, implementieren Sie diese Methode, und dann erbt Ihre Seite die Basisklasse, sodass Sie sie nicht wiederholt schreiben müssen
(Codebeispiele wurden im ersten Stock angegeben)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Apache2.4 und NginxNächster Artikel:Apache2.4 und Nginx