codeigniter 2.02 - передаваемый аргумент - страница не найдена - PullRequest
1 голос
/ 03 августа 2011

Я использую Ubuntu 10.10 и Codeigniter 2.0.2
я успешно установил CI, открыв страницу приветствия
позже я читал урок и добавил новый контроллер в свой проект:

class Start extends CI_Controller{
    var $base;
    var $css;

    function __construct() {
        parent::__construct();
        $this->base=$this->config->item('base_url');
        $this->css=$this->config->item('css');
        }


    function hello($name){
        $data['css'] = $this->css;
        $data['base'] = $this->base;
        $data['mytitle'] = 'Welcome to this site';
        $data['mytext'] = "Hello, $name, now we're getting dynamic!";
        $this->load->view('testview', $data);
    }
}

, а также переменная view (testview.php) и css. затем при попытке проверить это, выполнив http://localhost/ci/index.php/index/start/hello/fred я получаю 404 page not found.

спасибо

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Кажется, вы использовали старый учебник.В CodeIgniter 2 некоторые вещи отличаются.

  1. extend CI_Controller вместо extend Controller
  2. Используйте __construct для конструкторов вместо имени класса.

    function __construct(){
        parent::__construct();
        // More stuff
    }
    
  3. URL должен быть http://localhost/ci/index.php/start/hello/fred.URL-адреса CodeIgniter используются следующим образом:

    http://localhost/ci/index.php/<controller>/<method>/<params>
    
2 голосов
/ 03 августа 2011

используйте это объявление класса вместо

class Start extends CI_Controller{

и вместо вашего конструктора php4

используйте это вместо Start()

function __construct(){
    parent::__construct();
    $this->base=$this->config->item('base_url');
    $this->css=$this->config->item('css');
}

Фактическая причина, по которой вы получаете 404, заключается в том, что вы говорите ему найти функцию с именем fred. URL, который вы, вероятно, намереваетесь ввести, это ...

http://localhost/ci/index.php/start/hello/fred

Начиная с 2.0.x, Codeigniter изменил имена классов своих базовых контроллеров и перенес все в конструкторы стиля php5, среди прочего.

Возможно, вы следуете старому учебнику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...