Welcome Guest, Not a member yet? Register   Sign In
dynamic route
#1

hi, how can i add new routes dynamically? directly in the controller, like this:

PHP Code:
class Users extends CI_Controller {

 
   public function __remap()
 
   {
 
       $route['username'] = 'users/profile/user_id'// username and user_id r from the db
 
   }

 
   public function profile($user_id)
 
   {
 
       // ...
 
   }


the __remap also can be in MY_Controller, it doesn't matter, the main is the result

any idea?
Reply
#2

The short answer is you cannot - at least not in a controller. The router class is the one that consumes the $route array and it does that before the controller is loaded. Because your addition to $route is "in memory" it is gone on the next redirect or link to another page.

You might be able to create a pre_system hook that would add the dynamic route. Look at the "DEFAULT CONTROLLER" section of the main index.php file and the constructor in system/core/Router.php for inspiration on how it might be implemented.
Reply
#3

(This post was last modified: 09-08-2016, 12:01 AM by Tecvid.)

(09-07-2016, 09:25 AM)dave friend Wrote: The short answer is you cannot - at least not in a controller. The router class is the one that consumes the $route array and it does that before the controller is loaded. Because your addition to $route is "in memory" it is gone on the next redirect or link to another page.

You might be able to create a pre_system hook that would add the dynamic route. Look at the "DEFAULT CONTROLLER" section of the main index.php file and the constructor in system/core/Router.php for inspiration on how it might be implemented.

thank u dave friend! i'll check it, hope it'll help me)
Reply




Theme © iAndrew 2016 - Forum software by © MyBB