Comment définissez l'option afficher le chemin d'accès au fichier dans laravel?
J'ai une structure de répertoire pour laravel application comme ceci:
app/
admin/
controllers/
views/-> for admin views
...
views/-> for frontend views
Comment puis-je définir le chemin de la vue pour les contrôleurs dans l'admin? Je ne veux pas utiliser View::addLocation
ou View::addNamespace
parce que je pourrais avoir le même point de vue, un nom de fichier pour l'admin et le frontend, et vous ne voulez pas ajouter un espace de noms pour chaque View::make('namespace::view.file')
.
Je vois dans http://laravel.com/api/4.2/Illuminate/View/View.html il y a un setPath
méthode, mais comment dois-je l'appeler? View::setPath
soulevées non défini erreur de méthode.
peut-être essayer un des liens symboliques si c'est ce que tu veux dire, je ne sais pas, le but est
mon but est de séparer les points de vue pour l'administration et pour le frontend.
Puis il suffit de faire "admin" dans le dossier standard répertoire de vues, non? Ensuite, vous faites référence à la vue comme admin/mystuff
Je veux avoir un dossier "admin" pour les contrôleurs, des points de vue, etc. C'est plus propre je pense qu'avoir de l'admin sous-répertoire dans le répertoire de chaque les contrôleurs et les vues.
Bien à vous, comme il compliqué...
mon but est de séparer les points de vue pour l'administration et pour le frontend.
Puis il suffit de faire "admin" dans le dossier standard répertoire de vues, non? Ensuite, vous faites référence à la vue comme admin/mystuff
Je veux avoir un dossier "admin" pour les contrôleurs, des points de vue, etc. C'est plus propre je pense qu'avoir de l'admin sous-répertoire dans le répertoire de chaque les contrôleurs et les vues.
Bien à vous, comme il compliqué...
OriginalL'auteur xdim222 | 2014-12-13
Vous devez vous connecter pour publier un commentaire.
Vous avez deux moyens d'atteindre votre objectif. Tout d'abord, jetons un coup d'oeil à
app/config/view.php
. C'est là le chemin(s) pour afficher les temps de chargement sont définis.C'est la valeur par défaut:
Méthode 1: Charge à la fois les répertoires
Vous pouvez facilement ajouter le répertoire admin de la matrice
Maintenant le gros désavantage de cette: afficher les noms doivent être uniques. Sinon la vue dans le chemin d'accès spécifié premier sera pris en compte.
Puisque vous ne voulez pas utiliser de vue espace de noms, je suppose que vous ne voulez pas d'une syntaxe comme
admin.viewname
. Vous aurez sans doute comme méthode 2 plus 😉Méthode 2: Modification de l'affichage de la page au moment de l'exécution
Tous les Laravel configuration peut être modifiée lors de l'exécution à l'aide de laConfig::set
méthode.Semble-t-il la config ne va rien changer parce qu'il est chargé lorsque l'application démarre et ignoré par la suite.
Pour modifier le chemin d'accès au moment de l'exécution, vous devez créer une nouvelle instance de la
FileViewFinder
.Voici à quoi cela ressemble:
Méthode 3: Utilisation de addLocation mais sans chemin d'accès par défaut
Vous pouvez également supprimer le chemin d'accès par défaut dans
app/config/view.php
Et ensuite utiliser
View::addLocation
dans tous les cas (frontend et admin)View::addLocation
. J'ai essayé la méthode 2, mais il ne semble pas fonctionner, j'ai misConfig::set
dans le contrôleur__construct
, mais laravel semble ignorer que (laravel toujours charger le fichier de vue de "original" chemin d'accès).Désolé... ce qui se passe quand vous ne testez pas les choses que vous publiez sur. Jetez un oeil à la mise à jour de réponse. Cette fois, j'ai même testé 😉
Merci beaucoup pour la réponse et bonne explication!
Vous êtes les bienvenus. Quelle méthode allez-vous les utiliser?
Droit maintenant, je vais utiliser la méthode 3, mais je pense que je vais envisager d'utiliser la méthode 2 plus tard, parce que la méthode 3 pourrait soulever un autre problème, quand j'ai un autre point de vue répertoire (même si c'est moins possible) dans un module (frontend/admin), de toute façon la méthode 2 a l'air plus "bonne" façon de faire cela à mon humble avis 🙂
OriginalL'auteur lukasgeiter