Mam te adresy URL:
Jak uzyskać nazwę kontrolera, nazwę akcji z tych adresów URL. Jestem nowicjuszem CodeIgniter. Czy jest jakaś funkcja pomocnicza, aby uzyskać te informacje
Dawny:
$params = helper_function( current_url() )
Gdzie $params
staje się coś podobnego
array (
'controller' => 'system/settings',
'action' => 'edit',
'...'=>'...'
)
php
codeigniter
codeigniter-2
noname.cs
źródło
źródło
Zamiast używać segmentów URI, powinieneś zrobić to:
Dzięki temu wiesz, że zawsze używasz prawidłowych wartości, nawet jeśli znajdujesz się za routowanym adresem URL, w subdomenie itp.
źródło
modules::run('module/controller/action')
. Pokazuje tylko informacje o routerze załadowanej strony. Czy jest jakiś sposób, aby temu zaradzić?$this->router
zwraca klasę, w której działa kod, ale nie zwraca rzeczywistego routera zamaskowanego przez zastąpienie. Obie odpowiedzi są dość przydatne w zależności od tego, co chcesz zrobić.$this->router->class
i$this->router->method
zamiast tegoMetody są przestarzałe.
Zamiast tego możesz uzyskać dostęp do właściwości.
Zobacz podręcznik użytkownika Codeigniter
źródło
Inny sposób
źródło
Jako dodatek
źródło
fetch_module()
wywołanie nie działa dla mnie w CI 2.1.2. Nie można go znaleźć w pliku /system/router.php.Aktualizacja
Odpowiedź została dodana w 2015 roku, a następujące metody są obecnie przestarzałe
Cześć, powinieneś zastosować następujące podejście
w tym celu ale żeby z tego skorzystać trzeba wyciągnąć haczyk z
CI_Controller
i działa jak urok, nie należy używać segmentów uriźródło
Jeśli używasz $ this-> uri-> segment, jeśli zmienią się reguły przepisywania adresów URL, dopasowanie nazw segmentów zostanie utracone.
źródło
Użyj tego kodu w dowolnym miejscu w klasie lub bibliotekach
źródło
Akcją zawsze będzie ostatni segment adresu URL. Proszę, bądź taki:
źródło
// fecth dodaj klasę do kontrolera $ this-> router-> fetch_method ();
// metoda
źródło
Klasa kontrolera nie obsługuje żadnych funkcji.
więc polecam skorzystać z poniższych skryptów
źródło