Le rendu contrôleur d'affichage dans CakePHP
Est-il un moyen de rendre un contrôleur à un autre point de vue que la normale? J'essaie de transmettre certaines données à partir du contrôleur à un non-affichage par défaut. Sens mon contrôleur est appelé:
class StocksRealtimeController extends AppController {
var $uses = 'StockRealtime';
function index(){
$action = '/TestView';
$this->set('stocksRT', $this->StockRealtime->find('all'));
//$this -> viewPath = 'Pages';
$this -> render('/TestView/index');
}
}
... et de Mon point de vue est en vue->TestView->index.ctp
J'ai une autre question, comment faire pour passer cette valeur à un PHP et pas un ctp fichier en dehors du framework CakePHP?
J'ai tout essayé de ici avec pas de chance.
Vous devez vous connecter pour publier un commentaire.
Le droit chemin:
$this -> render('TestView/index');
Que la réponse ci-dessus mentionne, vous pouvez utiliser
$this -> set
pour passer une variable à la Vue.Toutefois, si cela ne vous donne pas ce que vous voulez. Je suppose que vous aussi, vous voulez de l'action à afficher une autre page (non-mise en page par défaut). Vous pouvez essayer de faire
$this -> layout = 'layoutname';
(Mises en page sont à la disposition de dossier par défaut est défaut.ctp).Remarque: CakePHP contrôleur n'est pas conçu pour passer des données à un non-affichage de fichier (.php). Les points de vue devraient être fin avec
.ctp
./TestView/index
).$this->render()
avant viewVars sont mis en rendra pas disponible dans votre point de vue.render()
méthode empêche le contrôleur de l'exécution et de n'importe quel code est après cette ligne sera omis. Réglage de laview
propriété plutôt, c'est une meilleure idée, la réponse de @Sabin Neagu devrait être acceptée./
si vous voulez rendre une vue de l'intérieur/app/View
et aucun/
si l'avis rendu est à partir d'un plugin. Liés à la documentation appropriée.Je préfère utiliser:
parce que tout
$this->set('var', $val)
vous aurez après$this->render('file')
n'atteindra pas votre point de vue.Dans CakePHP 3.x utilisation:
Obsolète dans CakePHP 3.7.
Utiliser ce lieu (comme Kuldeep Choudhary suggéré dans les commentaires)
Essayer de mettre le nom de la vue sans .ctp extension.
Lui donner un essai, le retour "mot-CLÉ" doit être là pour rendre la page d'affichage avec succès.
Désolé pour la 2ème question que je n'ai pas l'obtenir.
Selon CakePHP, variable [stocksTR] qui est défini à l'aide de
$this -> set( ) , sera également disponible à l'manuellement le rendu de la page d'affichage [ 'index.ctp' ].