Yii, createUrl ne fonctionne pas comme prévu
Je suis en train de faire la suite en vue:
<li><a href='<? Yii::app()->controller->createUrl('sources'); ?>'>sources</a></li>
Cependant "sources" n'est pas ajouté au chemin, à la place du code retourne le chemin d'accès à la boucle de courant.
Quelqu'un peut-il suggérer pourquoi moi? Le code est dans un module.
Mon url règles sont comme suit:
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
Vous devez fournir un contrôleur et une action aussi bien. Un contrôleur seul n'est rien.
OriginalL'auteur rix | 2012-07-14
Vous devez vous connecter pour publier un commentaire.
Vous devriez essayer 2 choses
Pour obtenir une URL absolue et non relative à l'actuel contrôleur ou l'action d'ajouter l'un des principaux 'slash' comme:
Vous devez également vous assurer de ne pas faire quelque chose de stupide comme oublier d'utiliser echo 🙂 ce qui m'arrive parfois...
+1 pour le slash
/
. Résolu mon problèmeOriginalL'auteur Zerg Ling
Tout d'abord , pourquoi êtes-vous encore à essayer de contrôleur d'accès à partir de la vue? Il est inutile et il va à l'encontre de tous les modèles.
En outre, vous pouvez créer des Url avec
Yii::app()->createUrl()
. Aussi, vous pouvez bénéficier de la lecture de la documentation sur comment utiliser cette fonction.La valeur
'sources'
ne correspond à aucune des modèles de routage .. essayez peut-être suivants:Yii::app()->createUrl('sources/view');
Yii::app()->createUrl('sources/foobar');
.Bien qu'il existe une telle méthode, cela ne signifie pas que vous devez accéder à la vue. L'enfer .. à mon humble avis, il devrait être
private
. Si la vue commence à manipuler directement les instances du contrôleur, alors on pourrait tout aussi bien s'arrêter, même en prétendant que c'est la MVC. Il n'est pas. Il n'existe pas de MVC-design inspiré du modèle qui permettent de visualiser des instances à la demande d'informations de contrôleur. Aucun.Aussi ... est-ce juste moi, ou est-ce inutile duplication de code.
Avait à faire quelques réflexions sur le sujet (ma compréhension de la MVC est encore assez primitive). Il semble que l'URL de génération devrait certainement être lié à une Vue, il aurait ainsi routage structures connexes (ceux, qui sont en fait responsables pour analyser les Url) comme une dépendance. Et le
Router
pourrait tenir le emplacement actuel en tant que bien. Ehh .... toute la confusion vient du fait, que le modèle de conception MVC a été fait pour l'application de bureau et la transition vers un environnement web n'est pas aussi simple que certains pourraient le penser.Il y a peu: Model2 (dont presque personne ne l'utilise), le MVP (la plupart des frameworks web .. avec peu de succès), MVVM (asp.net framework mvc, plusieurs frameworks javascript) et HMVC (Kohana cadre sur php côté, peu de Java cadres).
OriginalL'auteur tereško
Vous avez oublié l'écho:
OriginalL'auteur rapttor