1. Einführung in die D-Funktion
Die D-Funktion ist eine häufig verwendete Methode in ThinkPHP, um Modellobjekte zu instanziieren Syntaxformat Wie folgt:
D('模型名','应用名');
Unter diesen ist der Modellname ein erforderlicher Parameter. Der Anwendungsname ist ein optionaler Parameter. Wenn er nicht angegeben wird, wird standardmäßig die aktuelle Anwendung verwendet. Wenn wir beispielsweise das Blog-Modell instanziieren möchten, können wir den folgenden Code verwenden:
$Blog = D('Blog');
2. So übergeben Sie Parameter in der D-Funktion
Um die Geschäftslogik besser angemessen handhaben zu können, müssen wir während der Entwicklung möglicherweise Parameter an bestimmte Methoden des Modells übergeben. Der folgende Code kann verwendet werden, um die Liste der Benutzer abzufragen, die älter als 20 Jahre sind.
$User = D('User'); $list = $User->getUsersByAge(20);
getUsersByAge im obigen Code ist eine benutzerdefinierte Benutzermodellmethode, die zum Abfragen von Benutzerinformationen nach Alter verwendet wird. Wenn wir die D-Funktion verwenden müssen, um das Benutzermodellobjekt zu instanziieren und die getUsersByAge-Methode aufzurufen, wie sollten wir die Parameter übergeben?
Zunächst müssen wir den zweiten Parameter der D-Funktion verstehen: den Anwendungsnamen. Standardmäßig ist der Anwendungsname der Name der aktuellen Anwendung. Um ein Modellobjekt in einer anderen Anwendung zu instanziieren, geben Sie einfach den Namen der Anwendung an. Um beispielsweise eine Instanz eines Benutzermodellobjekts in der Admin-Anwendung zu erstellen, können Sie den folgenden Code verwenden:
$User = D('User','Admin');
Im obigen Code steht „Admin“ für den Anwendungsnamen. In diesem Fall durchsucht die Admin-Anwendung das Benutzermodell, um das Objekt zu instanziieren, sodass die D-Funktion ordnungsgemäß funktionieren kann. Wir müssen jedoch noch eine Möglichkeit finden, Parameter an die getUsersByAge-Methode im Benutzermodell zu übergeben.
Um dieses Problem anzugehen, bietet ThinkPHP eine prägnantere Schreibweise. Wir können den dritten Parameter der D-Funktion verwenden, um Parameter zu übergeben. Mit dem folgenden Code kann die Liste der Benutzer über 20 Jahre abgefragt werden
$User = D('User','',''); $list = $User->getUsersByAge(20);
Im obigen Code stellt die erste leere Zeichenfolge den Modellnamen dar, die zweite leere Zeichenfolge stellt den Anwendungsnamen dar und die Dritte leere Strings werden zur Übergabe von Parametern verwendet. In der getUsersByAge-Methode können wir die Funktion func_get_args() verwenden, um die übergebenen Parameter abzurufen.
3. Beispiel
Wir versuchen, ein Modul namens Blog im ThinkPHP5.0-Projekt für den tatsächlichen Betrieb zu erstellen. Erstellen Sie im Blog-Modul einen Artikel-Controller und fügen Sie eine Indexmethode hinzu, um die Liste der Artikel mit einer ID größer als 10 und einem Status von 1 abzufragen. Der Code lautet wie folgt:
// 文件地址:application\blog\controller\Article.php namespace app\blog\controller; use think\Controller; class Article extends Controller { public function index() { $Blog = D('Blog','Common'); $list = $Blog->getArticlesById(10,1); dump($list); } }
Im obigen Code verwenden wir die D-Funktion, um ein Blog-Modellobjekt zu instanziieren und den Anwendungsnamen „Common“ anzugeben. Wir haben die benutzerdefinierte Methode getArticlesById im Blog-Modell verwendet, um die Liste der Artikel abzufragen, die die Bedingungen erfüllen. Der Code der getArticlesById-Methode lautet wie folgt:
// 文件地址:application\common\model\Blog.php namespace app\common\model; use think\Model; class Blog extends Model { protected $table = 'blog'; public function getArticlesById($id,$status) { $where = [ 'id' => ['gt',$id], 'status' => $status ]; return $this->where($where)->select(); } }
Im obigen Code definieren wir eine Methode getArticlesById, die die Liste der Artikel mit einer ID größer als 10 und einem Status von 1 abfragt. Diese Methode akzeptiert zwei Parameter, $id und $status. Indem wir die Abfragebedingungen mit der Methode where festlegen, geben wir schließlich die Abfrageergebnisse über die Methode select zurück.
Das obige ist der detaillierte Inhalt vonSo übergeben Sie Parameter in der thinkphp D-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!