CodeIgniter: Страница не найдена при передаче параметров в контроллер? - PullRequest
8 голосов
/ 09 августа 2011

Я пытаюсь передать параметры элементу управления в codeigniter, но я получаю ошибку 404 страницы не найдена, я не получаю ее, я сделал то, что говорится в руководстве: https://www.codeigniter.com/user_guide/general/controllers.html#passing-uri-segments-to-your-methods

Когда я удаляю параметры в функции index и просто обращаюсь к контроллеру, все работает нормально, но я не могу передать ему значение ...

Вот код, которым я пытаюсь отправитьпараметр: http://mysite/123

<?php
class Main extends Controller {

    function index($username) {

        echo $username;

    }

}
?>

Как получить дополнительную информацию об этой ошибке от codeigniter?

Спасибо.

Ответы [ 5 ]

4 голосов
/ 09 августа 2011

URL-адрес должен быть http://mysite/Main/index/123.

Кодовые URL-адреса CodeIgniter: http://<url>/<Controller>/<Method>/<params>.

0 голосов
/ 06 февраля 2015

Добавьте эту функцию в свой контроль.Это поможет получить передачу аргумента в функцию index, если метод этого не делает.

    function _remap($method)
    {
      $param_offset = 2;

      // Default to index
      if ( ! method_exists($this, $method))
      {
        // We need one more param
        $param_offset = 1;
        $method = 'index';
      }

      // Since all we get is $method, load up everything else in the URI
      $params = array_slice($this->uri->rsegment_array(), $param_offset);

      // Call the determined method with all params
      call_user_func_array(array($this, $method), $params);
    }
0 голосов
/ 09 августа 2011

Насколько я знаю, данные передаются только при наличии более двух сегментов URI.

Попробуйте это,

<?php
class Main extends Controller {

    function index() {
        $username = $this->uri->segment(3);
        echo $username;
    }
}
?>

А затем перейдите к http://mysite/index.php/main/index/123

0 голосов
/ 09 августа 2011

// Для CI 2.0.2 //main.php

<?php
class Main extends CI_Controller {

    function index($username) {

        echo $username;

    }

}
?>

// application / config / rout.php $ route ['default_controller'] =' main ';

А затем попробуйте это в URL :: http://mysite/index.php/main/index/123

надеюсь, что это работает для вас

0 голосов
/ 09 августа 2011

Проверьте файл /application/config/routes.php и установите контроллер по умолчанию на main следующим образом:

$route['default_controller'] = 'main';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...