2015-04-18 10 views

Antwort

4

können Sie verwenden $this->uri->segment(n);

Sie müssen einige Änderungen in der Route tun, um den Code Zünder zu ermöglichen, die Parameter in Ihrem Controller zu erhalten

$route['uri-(:any)/(:num)'] = "controller/function/$1/$2"; 

ODER

$route['uri-(:any)'] = "controller/function/$1"; 

in Ihrem Controller einige Änderungen vornehmen

<?php 
if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class controller extends CI_Controller 
{ 
    function function($parameter1 = null, $parameter2 = null) 
    { 
     ........ 
    } 
} 

beziehen sich diese http://www.codeigniter.com/userguide2/libraries/uri.html

5

Sie könnten $this->uri->segment(n) verwenden.

http://www.codeigniter.com/userguide2/libraries/uri.html

+0

danke, wenn ich das tue zeigt es Seite nicht gefunden Fehler –

+1

Sie müssen möglicherweise Ihre Routen konfigurieren. – user4419336

+0

@wolfgang eigentlich ich weiß nicht, wie ich meine Routen konfigurieren kann, können Sie mir helfen –

2

Ihre Parameter Angenommen wird am Ende immer:

$segs = $this->uri->segment_array(); 
echo end($segs); 

EDIT: Für die andere wichtige Dinge zu klären. Zuerst müssen Sie die Einrichtung Ihres application/config/routes.php:

$route['Youruri-(:any)/(:num)'] = "yourcontroller/yourfunction/$1/$2"; 
$route['Youruri-(:any)'] = "yourcontroller/yourfunction/$1"; 

In der Steuerung application/controllers/yourcontroller.php Sie müssen eine Funktion definieren:

<?php 
if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Yourcontroller extends CI_Controller { 

function yourfunction($brand = null, $page = null) { 
    // http://www.yoursite.com/Youruri-Microsoft 
    // or http://www.yoursite.com/yourcontroller/yourfunction/Microsoft 
    // do some stuff for get products of this $brand (Microsoft) 
    if($page != null) { 
    // http://www.yoursite.com/Youruri-Intel/2 
    // or http://www.yoursite.com/yourcontroller/yourfunction/Intel/2 
    // do some other stuff get products of this $brand (Intel) of $page (2) 
    } 
} 
} 
+0

Ich versuchte es nur Controller-Namen angezeigt, aber nicht meine Parameter –

+0

@ M.Athishkrishna der Code mit Segmenten zeigt immer letzten Teil der URL. Ich denke, Sie übergeben keine Parameter per URI an Ihre Anwendung. – motto

2

Sie erhalten durch diese:

$this->uri->segment(n); 

n = 1 für Controller, n = 2 für Methode und n = 3 für Parameter und so weiter.

Sie benötigen n = 3, um den Parameter zu erhalten.

In Ihrem Pfad localhost/log/job/php fehlt Ihr Methodenname.

Selbst wenn Ihr Methodenname ist index dann Route du localhost/log/job/index/php

Im Fall sein wird, wenn Sie index.php von URL zu entfernen, müssen dann erhalten Sie Parameter localhost/log/index.php/job/index/php

mit index.php Sie entfernen müssen .htaccess-Datei erstellen, indem Sie die folgenden Schritte:

  1. erstellen .htaccess Datei, in der Datei index.php mit Inhalt befindet

    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
    
  2. Stellen Sie sicher, dass Apache auf diese .htaccess-Datei zugreifen kann. Bearbeiten Sie dazu die Apache-Konfigurationsdatei. Wenn Sie ubuntu verwenden, dann ist es /etc/apache2/sites-available/default und dann ändern Sie AllowOverride none zu AllowOverride all für Verzeichnis und WWW-Verzeichnis.

    <Directory /> 
         Options FollowSymLinks 
         AllowOverride all 
        </Directory> 
        <Directory /var/www/> 
         Options Indexes FollowSymLinks MultiViews 
         AllowOverride all 
         Order allow,deny 
         allow from all 
        </Directory> 
    
  3. Dann mod Rewrite aktivieren, wenn Sie es nicht haben, mit dem folgenden Befehl:

    `sudo a2enmod rewrite` 
    
  4. Schließlich vergessen Sie nicht, Apache neu zu starten.

Hoffe, das wird helfen.

0

Verwendung:

$param = $this->uri->segment(3); 

.htaccess auf Ihrem Ordner hinzufügen (auf Ihrem Fall "log" ist):

RewriteEngine On 
RewriteBase /log/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /log/index.php/$1 [L] 
Verwandte Themen