Using the remap with parameters - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5) +--- Forum: General Help (https://forum.codeigniter.com/forumdisplay.php?fid=24) +--- Thread: Using the remap with parameters (/showthread.php?tid=71973) |
Using the remap with parameters - Qodi - 10-20-2018 Do both of these forms work $this->$method($params); call_user_func_array(array($this, $method), $params) Thanks in advance. God bless. RE: Using the remap with parameters - jreklund - 10-20-2018 Second are preferred as $params in _remap are an array. And if there are only one item in that array, it will convert it into a string. With the first option you are going to get Array to String converting error. Also it will allow you to pass more then one param into that function e.g. index($arg, $arg2). First option gives you the entire array in $arg, and ignores $arg2. Here's an example I wrote to another forum member. If the first parameter matches a function it will call that, else it will pass it into index(). So http://localhost/create will go to create() and http://localhost/everything-else will go to index('everything-else'). PHP Code: <?php RE: Using the remap with parameters - Qodi - 10-21-2018 (10-20-2018, 03:21 PM)jreklund Wrote: Second are preferred as $params in _remap are an array. And if there are only one item in that array, it will convert it into a string. Thanks, I'll study this form. Just to double check, even if I use the form $params = array() in the remap parameter list it will still try to convert the one entry array to a string? RE: Using the remap with parameters - jreklund - 10-21-2018 I haven't tried to force an associate/multi array in the first position of $params. As that's not something that can be generated from the URL. But a normal array of ['one','two','three'] will turn into index($one,$two,$three) and ['one'] will turn into index($one). http://localhost/one/two/three/ turns into ['one','two','three']. http://localhost/one/ turns into ['one']. |