Comment voulez-vous créer des liens relatifs dans CodeIgniter?
Exemple, j'ai le code suivant dans le Contrôleur:
class Main extends CI_Controller {
public function index()
{
$this->load->view('main_view');
}
public function create ()
{
$this->load->view('create_view');
}
}
Si je veux créer un lien relatif à create
, comment puis-je le réaliser? Le lien suivant dans la vue ne fonctionne pas toujours. Qu'est-ce que apporpiate façon de créer des liens relatifs dans CodeIngiter?
<a href="create"> Create </a>
OriginalL'auteur Mark | 2011-04-17
Vous devez vous connecter pour publier un commentaire.
ou tout simplement:
Assurez-vous que vous avez chargé le URL Helper.
OriginalL'auteur jáquer
Vous n'avez pas à faire quelque chose de spécial ou de charger toutes les aides, il suffit de garder à l'esprit que les chemins seront relative à l'url et non pas le système de fichiers ou le contrôleur.
En supposant que votre installation est dans le répertoire racine de votre domaine, disons que votre URL actuelle est
http://localhost/class/method/var
:Les chemins relatifs ne sont pas votre ami dans Codeigniter, vous êtes mieux de rester avec une url complète (généralement en utilisant les fonctions d'assistance comme
base_url()
etsite_url()
), ou utiliser la barre oblique (par rapport à partir de la racine). Les gens ont mentionné l'aide de la<base>
balise html, mais je n'ai pas personnellement le recommande. Vous allez avoir quelques très loufoque url si vous utilisez../../relative
chemins lorsque vous obtenez plus profondément dans l'url segments. Exemple:Si vous êtes ici:
http://localhost/controller/method/var1/var2/var3
Un lien pourrait ressembler à ceci:
<a href="../../../../controller2/method/othervar"></a>
Probablement pas ce que vous voulez, mais c'est une option que vous pouvez choisir. Je recommande d'utiliser l'un des deux autres.
OriginalL'auteur Wesley Murch
Voici une explication sur la façon dont il fonctionne.
Les Url relatives avec CodeIgniter
Espère que cela aide.
OriginalL'auteur Satch3000
Juste pour signaler une autre alternative, si vous n'aimez pas l'idée d'écrire un php fragment dans chaque href, et si les autres approches ne vous satisfait pas. Vous pouvez utiliser mettre un commun
<BASE >
balise d'en-tête html (par exemple qui pointe vers la racine de votre application), et puis n'oubliez pas que chaque relatif url de vos pages sera avec respect et avec cette url.<base>
tag peut causer des problèmes, voir ici: http://stackoverflow.com/questions/1889076/is-it-recommended-to-use-the-base-html-tagDéfendable. J'avais vu ce post avant, j'ai décidé d'aller pour cette
<base>
alternative. Et je n'ai eu aucun problèmes. Il faut être conscient des questions mentionnées dans l'acceptation de réponse, mais c'est tout. Et voir aussi le top voté réponse.Oui je l'ai lu, le haut voté réponse se conclut qu'il devrait être évitée. Je sais par expérience qu'il peut briser en-page de hachage des ancres et des scripts tiers. Je l'ai utilisé et je suis de l'utiliser sur certains sites, le "besoin", mais elle doit être utilisée avec prudence.
OriginalL'auteur leonbloy