Welcome Guest, Not a member yet? Register   Sign In
[SOLVED] How to select default controller in subfolder?
#4

(This post was last modified: 01-06-2016, 10:43 PM by wolfgang1983.)

(01-06-2016, 03:12 PM)normeno Wrote: Hi community,

I'm trying to do a project in Codeigniter 3.x, but I have a question concerning the routes.

If I have the following structure

/application/controllers/Welcome.php

I can put the following in routes.php and have no problem

PHP Code:
route ['default_controller'] = 'welcome'

The problem is that if I have the following structure

/application/controllers/admin/Welcome.php

I am not allowed to configure the routes so

PHP Code:
route ['default_controller'] = 'admin/welcome'

There is the ability to set default controller in a subdirectory of controllers?


Thank you!

I have asked this question my self before you need to create a MY_Router.php file in application / core

Default Controller In Sub Folder

PHP Code:
<?php
 
class MY_Router extends CI_Router {
 
   protected function _set_default_controller() {
 
        
        if 
(empty($this->default_controller)) {
 
           
            show_error
('Unable to determine what should be displayed. A default route has not been specified in the routing file.');
 
       }
 
       // Is the method being specified?
 
       if (sscanf($this->default_controller'%[^/]/%s'$class$method) !== 2) {
 
           $method 'index';
 
       }
 
        
        
// This is what I added, checks if the class is a directory
 
       ifis_dir(APPPATH.'controllers/'.$class) ) {
 
            
            
// Set the class as the directory
 
           
            $this
->set_directory($class);
 
           
            
// $method is the class
 
           
            $class 
$method;
 
           
            
// Re check for slash if method has been set
 
           
            if 
(sscanf($method'%[^/]/%s'$class$method) !== 2) {
 
               $method 'index';
 
           }
 
       }
 
        
        if 
( ! file_exists(APPPATH.'controllers/'.$this->directory.ucfirst($class).'.php')) {
 
           
            
// This will trigger 404 later
 
           
            return
;
 
       }
 
       $this->set_class($class);
 
       $this->set_method($method);
 
       // Assign routed segments, index starting from 1
 
       $this->uri->rsegments = array(
 
           1 => $class,
 
           2 => $method
        
);
 
       log_message('debug''No URI present. Default controller set.');
 
   }

There's only one rule - please don't tell anyone to go and read the manual.  Sometimes the manual just SUCKS!
Reply


Messages In This Thread
RE: How to select default controller in subfolder? - by wolfgang1983 - 01-06-2016, 10:42 PM



Theme © iAndrew 2016 - Forum software by © MyBB