Comment puis-je appeler cette méthode dans la framework yii: statiquement, comme celui-ci: p>
4 Réponses :
Il semble que cela soit impossible, car le rendu est effectué des représentations "au nom" du contrôleur (ou de la successeur cbasecontroller)
mais, en mode d'application de la console, vous pouvez utiliser ceci: p> voir http://www.yiiframework.com/doc/api/ 1.1 / CConsolecommand P> P>
Un commando peut-il comme moi ré-instancer le contrôleur (basocontroller), donc je vais donc être capable d'appeler cela statiquement à travers une autre classe ou quoi (TF)?
Voir la source de la fonction Renderfile: Yiiframework.com/doc/api/1.1/ Conconsolecommand # Renderfile-Deta Il
En fait, le rendu est réduit à ces lignes: extrait ($ _ data_, extr_prefix_same, «données»); code> et
ob_start (); ob_implicit_flush (faux); exiger ($ _ visionnaire_); retour ob_get_clean (); code>
Vous voudrez peut-être regarder RenderInternal que je ' VE utilisé dans les fonctions de classe personnalisée, etc. Il peut être appelé comme:
Vous ne serez pas en mesure d'appeler renduinternal code> intimer la commande console à l'aide de
CController-> renduinternal code> Parce que la console n'a aucune idée de ce qui est un contrôleur. Votre meilleur pari sera
rendufile code>
Erreur: Méthode non statique CBASECONTROLLER :: RenderInternal () ne devrait pas être appelé statiquement
Réponse mise à jour pour montrer comment éviter l'erreur. Espérons que cette méthode fonctionnerait toujours pour l'OP, cela fonctionne bien pour moi et peut être utilisé dans l'application Web et / ou la console. Vous pouvez utiliser Renderfile à la place, et pourrait être meilleur si vous utilisez exclusivement cela dans une application de console.
Je dois utiliser le rendu partiel dans le modèle, j'ai eu du code comme celui-ci ici, j'ai utilisé yii :: app () -> contrôleur-> rendupartiale p> p>
Cela ne fonctionnera que lorsqu'un contrôleur est présent. Si vous essayez d'envoyer un e-mail avec cette fonction à partir d'une application de tâche cron ou de console, cela échouera.
Vérifiez cet article Yii Wiki écrit par moi ..:) p>
==== >>> $ e-mailtemplate = $ ceci-> RenderPartial ('Modèle / TemplateContact', Array (), True); // Obtenir le contenu du modèle de messagerie p>
Notez que Les réponses Link-seulement sont découragées, les réponses doivent donc être le point final d'une recherche pour une solution (contre une autre halte de références, qui tendent à être obsolète au fil du temps). Veuillez envisager d'ajouter un synopsis autonome ici, en gardant le lien comme référence.