2010-05-19 5 views
0

Comment faire une URL de travail comme celui-ci: example.com/controller/method?id=1&cat=2url amicale et chaîne de requête

+0

Y at-il une raison pour laquelle vous ne pouvez pas passer "id" et "chat" via les segments URI? Par exemple, example.com/controller/method/1/2 ou example.com/controller/method/id/1/cat/2? –

+0

peut-être parce que cette URL est créée pas par moi, quelles autres raisons peuvent être? –

+0

dynback.com ... nous ne savons pas. C'est pourquoi nous demandons. –

Répondre

5

Il est possible par la mise en $config['enable_query_strings'] = TRUE; dans votre fichier config.php (Comme DamienL a répondu). Je viens d'essayer avec une nouvelle installation CodeIgniter from here.

Toutefois, il semble qu'il doit y avoir au moins 2 variables (séparées par un "&") pour que cela fonctionne.

Voici les étapes de mon travail pour y arriver:

Dans config.php, j'ai changé $config['base_url'] dans le répertoire approprié et définissez $config['enable_query_strings'] = TRUE;

Dans le répertoire des contrôleurs que j'ai créé la classe suivante:

class Testing extends Controller { 

    function Testing() 
    { 
     parent::Controller(); 
    } 

    function index() 
    { 
     $this->load->view('welcome_message'); 
    } 
} 

/* End of file testing.php */ 

/* Location: ./system/application/controllers/testing.php */ 

Je peux alors accéder à la fonction d'index avec une chaîne de requête, mais seulement s'il y a 2 ou plusieurs variables comme celui-ci:

localhost/CodeIgniter_1.7-1.2/index.php/test/index? Id = 123 & cat = abc

Si vous avez besoin absolument les deux basés sur des chaînes par segment et d'interrogation des approches, mais seulement besoin d'une variable dans une chaîne de requête particulière, je suppose que vous pourriez ajouter une deuxième variable "factice" et juste l'ignorer.

+0

Votre option est pour ceci: http://127.0.0.1/critic/index.php?c=testing&m=index&some=1 | Mais j'ai besoin de ceci: http://127.0.0.1/critic/index.php/testing/index?some=1 –

+0

@ dynaback.com: Pourquoi les -1? Après l'activation des chaînes de requête, vous pouvez * faire 127.0.0.1/critic/index.php/testing/index?some=1. Je vais modifier ma réponse pour clarifier –

+0

J'ai 404 pour cela. Quand je mets cette option, only-segment et only-query-string deviennent opérationnels. Mais pas tous les deux dans une url. –