Frage

Ich möchte aus einer .ctp Datei in CakePHP eine Aktion von Controller-Datei aufzurufen. ist es möglich? ja, als wie? bitte Hilfe. für z.B. Ich habe eine Aktion im Controller. users_controller.php

<?php
class UsersController extends AppController {

    function get_category() {
        ....
    }

}
?>

Ich möchte es aus /question/index.ctp Datei aufrufen.

War es hilfreich?

Lösung

Der richtige Weg, dies zu tun ist:

$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));

die URL the CakePHP way Erstellen wird die Leistung erhöhen (es müssen Router nicht verwenden). Auch wird immer funktionieren, während es zu tun wie:. „Benutzer / GET_CATEGORY“ könnte einige Probleme verursachen, wenn Sie nicht in der Index-Seite sind

Es sollte nur in Elementen verwendet werden (mit Cache vor allem), wenn der Fall anders -. Reefer, was Travis Leleu schrieb in seinem Kommentar

Andere Tipps

Es ist zu beachten, dass Sie nicht auf request als gängige Praxis verlassen sollten. request ist ein extrem anstrengend Anruf und sollten nur verwendet werden, wenn Sie Ihren Code nicht in irgendeiner anderen Art und Weise organisieren.

Im Idealfall würde Sie die Daten senden Sie von Ihrem Controller-Aktion zur Ansicht benötigen, anstatt wieder aufrufen zu Ihrem Controller auf.

function my_action() {
   ...
   $this->set('category', $this->getCategory());
}

Sie können es nennen wie $ this-> request ( 'Controller' => 'Benutzer', 'action' => 'GET_CATEGORY')

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top