Domanda

Voglio chiamare un'azione di file di controllo da un file .ctp in CakePHP. È possibile? Sì, che come? per favore aiuto. per esempio Ho un azione di controllo. users_controller.php

<?php
class UsersController extends AppController {

    function get_category() {
        ....
    }

}
?>

voglio chiamarlo dal file /question/index.ctp.

È stato utile?

Soluzione

Il modo corretto per farlo è:

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

Creazione del the CakePHP way URL aumenta le prestazioni (non sarà necessario utilizzare il router). Inoltre sarà sempre il lavoro, mentre lo fa come:. "Gli utenti / get_category" potrebbe causare qualche problema quando non sei nella pagina indice

Si deve essere utilizzato solo a elementi (con la cache in particolare), se il caso è diverso -. Reefer a ciò che Travis Leleu ha scritto nel suo commento

Altri suggerimenti

Si deve notare che non si dovrebbe fare affidamento su requestAction come una pratica comune. requestAction è una chiamata estremamente tassare e deve essere utilizzato solo se non è possibile organizzare il codice in qualsiasi altro modo.

Idealmente, devi inviare i dati necessari dal vostro azione di controllo alla vista, piuttosto che richiamare fino al controller.

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

si può chiamare come $ this-> requestAction ( 'Controller' => 'utenti', 'Azione' => 'get_category')

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top