How to call subdirectory in the controller?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am using CodeIgniter and my folder structure is like below.



Controller



controllers
-admin
--Access_controller
--more
-website
--Website_controller
--more


Model



Model
-admin
--Access_model
--more here
-website
--Website_model
--more here


view



view
-admin
--login.php
--changepassword.php
--more here
-website
-- home.php
-- about.php
-- contactus.php


Now I have to access the controller but it's not working. I checked every post on SO and found the answer like. I have to add code on routes.php file.



I tried



1)  $config['admin'] = 'admin/Access_controller';
$route['default_controller'] = 'website/Website_controller';


2) $config['admin/Access_controller'] = 'admin';
$config['default_controller'] = 'website/Website_controller';

3) $route['default_controller'] = 'website/Website_controller';

$route['admin/(:any)'] = "admin/$1";


4) Also, I created a file My_Route.php in application->core and added code but this code is working only for default_controller.



<?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
if( is_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.');
}
}


I tried all the solution But still, I am getting the error object not found.



Another solution to this issue would be a great help for me?



I don't know what I missed in this. Would you help me out on this issue?










share|improve this question































    0















    I am using CodeIgniter and my folder structure is like below.



    Controller



    controllers
    -admin
    --Access_controller
    --more
    -website
    --Website_controller
    --more


    Model



    Model
    -admin
    --Access_model
    --more here
    -website
    --Website_model
    --more here


    view



    view
    -admin
    --login.php
    --changepassword.php
    --more here
    -website
    -- home.php
    -- about.php
    -- contactus.php


    Now I have to access the controller but it's not working. I checked every post on SO and found the answer like. I have to add code on routes.php file.



    I tried



    1)  $config['admin'] = 'admin/Access_controller';
    $route['default_controller'] = 'website/Website_controller';


    2) $config['admin/Access_controller'] = 'admin';
    $config['default_controller'] = 'website/Website_controller';

    3) $route['default_controller'] = 'website/Website_controller';

    $route['admin/(:any)'] = "admin/$1";


    4) Also, I created a file My_Route.php in application->core and added code but this code is working only for default_controller.



    <?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
    if( is_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.');
    }
    }


    I tried all the solution But still, I am getting the error object not found.



    Another solution to this issue would be a great help for me?



    I don't know what I missed in this. Would you help me out on this issue?










    share|improve this question



























      0












      0








      0








      I am using CodeIgniter and my folder structure is like below.



      Controller



      controllers
      -admin
      --Access_controller
      --more
      -website
      --Website_controller
      --more


      Model



      Model
      -admin
      --Access_model
      --more here
      -website
      --Website_model
      --more here


      view



      view
      -admin
      --login.php
      --changepassword.php
      --more here
      -website
      -- home.php
      -- about.php
      -- contactus.php


      Now I have to access the controller but it's not working. I checked every post on SO and found the answer like. I have to add code on routes.php file.



      I tried



      1)  $config['admin'] = 'admin/Access_controller';
      $route['default_controller'] = 'website/Website_controller';


      2) $config['admin/Access_controller'] = 'admin';
      $config['default_controller'] = 'website/Website_controller';

      3) $route['default_controller'] = 'website/Website_controller';

      $route['admin/(:any)'] = "admin/$1";


      4) Also, I created a file My_Route.php in application->core and added code but this code is working only for default_controller.



      <?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
      if( is_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.');
      }
      }


      I tried all the solution But still, I am getting the error object not found.



      Another solution to this issue would be a great help for me?



      I don't know what I missed in this. Would you help me out on this issue?










      share|improve this question
















      I am using CodeIgniter and my folder structure is like below.



      Controller



      controllers
      -admin
      --Access_controller
      --more
      -website
      --Website_controller
      --more


      Model



      Model
      -admin
      --Access_model
      --more here
      -website
      --Website_model
      --more here


      view



      view
      -admin
      --login.php
      --changepassword.php
      --more here
      -website
      -- home.php
      -- about.php
      -- contactus.php


      Now I have to access the controller but it's not working. I checked every post on SO and found the answer like. I have to add code on routes.php file.



      I tried



      1)  $config['admin'] = 'admin/Access_controller';
      $route['default_controller'] = 'website/Website_controller';


      2) $config['admin/Access_controller'] = 'admin';
      $config['default_controller'] = 'website/Website_controller';

      3) $route['default_controller'] = 'website/Website_controller';

      $route['admin/(:any)'] = "admin/$1";


      4) Also, I created a file My_Route.php in application->core and added code but this code is working only for default_controller.



      <?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
      if( is_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.');
      }
      }


      I tried all the solution But still, I am getting the error object not found.



      Another solution to this issue would be a great help for me?



      I don't know what I missed in this. Would you help me out on this issue?







      php routes codeigniter-3






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 17 '18 at 5:20







      user9437856

















      asked Nov 23 '18 at 8:04









      user9437856user9437856

      471314




      471314
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53442731%2fhow-to-call-subdirectory-in-the-controller%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53442731%2fhow-to-call-subdirectory-in-the-controller%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to change which sound is reproduced for terminal bell?

          Can I use Tabulator js library in my java Spring + Thymeleaf project?

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents