thinkphp öffentliche Ausgabe einer Variablen

WBOY
Freigeben: 2023-03-02 11:58:01
Original
1543 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
<code><?php
namespace HomeController;

use ThinkController;
use Home/BaseController

class IndexController extends BaseController{
    public function index(){
        $this->header();
    }
}
</code>
Nach dem Login kopieren
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)

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage