J'ai ces URL:
Comment obtenir le nom du contrôleur, le nom de l'action à partir de ces URL. Je suis un novice de CodeIgniter. Y a-t-il une fonction d'aide pour obtenir ces informations
Ex:
$params = helper_function( current_url() )
Où $params
devient quelque chose comme
array (
'controller' => 'system/settings',
'action' => 'edit',
'...'=>'...'
)
php
codeigniter
codeigniter-2
noname.cs
la source
la source
Au lieu d'utiliser des segments URI, vous devez faire ceci:
De cette façon, vous savez que vous utilisez toujours les valeurs correctes même si vous êtes derrière une URL routée, dans un sous-domaine, etc.
la source
modules::run('module/controller/action')
. Il montre simplement les informations du routeur de la page chargée. Y a-t-il un moyen de surmonter cela?$this->router
retourne la classe dans laquelle le code s'exécute, mais pas le routeur réel masqué par le remplacement. Les deux réponses sont très utiles en fonction de ce que vous voulez faire.$this->router->class
et à la$this->router->method
placeLes méthodes sont obsolètes.
Vous pouvez accéder aux propriétés à la place.
Voir le guide de l'utilisateur de codeigniter
la source
Autrement
la source
En complément
la source
fetch_module()
appel ne fonctionne pas pour moi dans CI 2.1.2. Impossible de le trouver dans le fichier /system/router.php.Mettre à jour
La réponse a été ajoutée en 2015 et les méthodes suivantes sont désormais obsolètes
Salut, vous devriez utiliser l'approche suivante
à cette fin, mais pour l'utiliser, vous devez étendre votre crochet à partir du
CI_Controller
et cela fonctionne comme un charme, vous ne devez pas utiliser de segments urila source
Si vous utilisez $ this-> uri-> segment, si les règles de réécriture des URL changent, la correspondance des noms de segments sera perdue.
la source
Utilisez ce code n'importe où dans la classe ou les bibliothèques
la source
Le dernier segment de l'URL sera toujours l'action. Veuillez obtenir comme ceci:
la source
// classe fecth la classe dans le contrôleur $ this-> router-> fetch_method ();
// méthode
la source
la classe de contrôleur ne fonctionne aucune fonction.
donc je vous recommande d'utiliser les scripts suivants
la source