Je crée un comportement qui doit consigner le nom du contrôleur actuel. Comment puis-je obtenir le nom du contrôleur actuel à partir d'un modèle dans CakePHP?CakePHP: obtient le nom du contrôleur actuel dans un modèle
Répondre
J'ai trouvé une solution, ce n'est pas joli mais ça a marché pour moi. J'utilise simplement le $ _REQUEST ['url'] et attrape le nom du contrôleur par url. L'inconvénient de cette solution, c'est que si vous avez un itinéraire différent par défaut, cette solution ne fonctionnera pas ... quelqu'un a une meilleure approche?
En fonction de ce que vous essayez d'accomplir, vous pouvez écrire un composant – dhofstet
L'une des constantes magiques de PHP est __CLASS__
qui renverra le nom de classe de l'objet dans lequel elle se trouve. Cela peut vous apporter ce dont vous avez besoin.
http://php.net/manual/en/language.constants.predefined.php
Constantes magiques et méthodes sont amusants.
Je suis curieux de savoir pourquoi quelqu'un a déprécié cela? C'est le début d'une solution qui semble fonctionner (même si elle n'est pas optimale). S'il vous plaît laissez un commentaire si vous downvote. –
Je voudrais savoir aussi. Probablement il y a un moyen dans Cake. Je n'utilise pas de gâteau, donc je ne sais pas. Peut-être que Cake n'utilise pas de classes pour les contrôleurs? Qui sait. – DampeS8N
Je n'ai pas déprécié cette réponse, mais cela ne renvoie-t-il pas simplement le nom du comportement? – dhofstet
Essayez ceci. Si vous avez seulement besoin du nom du contrôleur.
Inflector::pluralize($this->name);
Je sais que cette question est assez vieux, mais la bonne solution serait ici:
$this->params['controller']
Pour plus d'informations sur l'attribut 'params':
http://book.cakephp.org/view/963/The-Parameters-Attribute-params
$GLOBALS['Dispatcher']->params['controller']
sera vous donne le nom du contrôleur
quelle version de PHP utilisez-vous? – DampeS8N