Comment puis-je régler le title_for_layout par défaut dans le PagesController?
Je ne peux pas définir title_for_layout
dans le PagesController qui vient par défaut avec CakePHP 1.3.
Je suis en utilisant le code suivant dans la fonction d'affichage:
$this->set('title_for_layout','some title');
Ce que je fais mal?
Mise à jour: Le
$title_for_layout
est déprécié que de 2,5 LienOriginalL'auteur ion | 2010-04-13
Vous devez vous connecter pour publier un commentaire.
Dans votre contrôleur, la valeur correspondante est
$this->pageTitle
.Mise à JOUR
Oups, comme indiqué dans les commentaires, c'est le 1.2 la solution. 1.3 possibilités (après quelques recherches):
$title_for_layout
est fait l'écho dans la mise en page$this->set()
code dans la vue plutôt que dans le contrôleurDésolé les gars mais $this->PageTitle est pour cakephp 1.2 et pas pour de 1,3 à ma connaissance. En tout cas, si utilisé dans cakephp 1.2 produit une erreur.
Des excuses. J'ai raté le 1.3 spécification dans votre question, si ce n'était pas une partie d'un montage. Il ne ressemble que de l'disparu 1.3 (book.cakephp.org/view/1561/Migrating-from-CakePHP-1-2-to-1-3). Je n'ai pas utilisé de 1,3 encore, mais une lecture de la documentation indique que ce que vous faites qui devrait fonctionner si le reste du cadre est correct.
Au risque d'énoncer une évidence, êtes-vous en écho à la
$title_for_layout
variable à votre disposition réelle? par exemple,<title><?php echo $title_for_layout; ?></title>
?Ressemble à la solution était de mettre le $this->set() code dans la vue et pas dans le contrôleur.
OriginalL'auteur Rob Wilkerson
Si vous voulez imiter le comportement de gâteau 1.2, vous pouvez effectuer les opérations suivantes:
Dans votre app_controller, créer la méthode suivante:
dans app/app_controller.php (vous devrez peut-être créer ce fichier si vous ne l'avez pas déjà)
Puis dans l'une de vos méthodes d'action, vous pouvez ensuite utiliser la pageTitle comme vous le feriez dans 1.2.
La beforeRender() la méthode sera appelée après vos contrôleurs ont terminé le traitement, mais avant la mise en page en cours de rendu, vous permettant ainsi de définir des variables pour la mise en page.
OriginalL'auteur aminal
Dans la méthode de l'action, essayez ceci:
OriginalL'auteur Chirag
Juste pensé que je pourrais ajouter à toutes les nouvelles personnes ont trouvé la solution, vous pouvez le faire
$this->set('title', $title);
dans CakePHP 1.3 à l'intérieur du contrôleur et le titre sera automatiquement rendu.OriginalL'auteur Calvin
Vous pouvez utiliser :
et en ctp :
Il travail dans CakePHP 3.0
OriginalL'auteur Obi
Pour CakePHP 3.x,
vous pouvez suivre les conseils ici
Essentiellement,
À l'intérieur de
UsersController.php
:À l'intérieur de
src/Template/Layouts/default.ctp
au-dessus de la
$this->fetch('title');
écrire:
OriginalL'auteur Kim Stacks
Utilisation
beforeRender()
à la place. Placez le code suivant dans AppController:Et dans le contrôleur, il vous suffit de faire:
Que va faire l'affaire.
OriginalL'auteur windmaomao