Параметры CodeIgniter - невозможно загрузить запрошенный файл

У меня есть этот контроллер:

class Work extends MY_Controller {
    public function assign($id) {
        //validation checks
        if ($this->form_validation->run() === FALSE) {
            $this->load->view("work/assign/" . $id);
        } else {
            //success
        }
    }
}

А также вид на views/work/assign.php У меня также есть следующий маршрут:$route['work/assign/(:any)'] = 'work/assign/$1';

Когда я иду в /work/assign/1 в моем браузере, и я получаю эту ошибку: Unable to load the requested file: work/assign/1.php Я хочу, чтобы он отображал страницу с параметром 1

2 ответа

Решение

Вы получаете ошибку из-за неправильного параметра в view вызов

$this->load->view("work/assign/" . $id); так как ваш последний косой черты сказать CI, что это .php и в вашем последнем косом $id=1 поэтому он ищет, чтобы загрузить 1.php правильный способ загрузить view и передайте свой идентификатор для просмотра, создайте массив, который содержит данные, которые вы хотите показать в представлении, затем вызовите view и передайте массив, ключи массива будут преобразованы в переменные с помощью CI

class Work extends MY_Controller {
    public function assign($id) {
        //validation checks
        if ($this->form_validation->run() === FALSE) {
        $data['id']=$id;
            $this->load->view("work/assign" ,$data);
        } else {
            //success
        }
    }
}

В assign.php просто эхо $id и вы получите желаемый идентификатор

Загрузчик не заботится о ваших маршрутах, а кроме того:

$route['work/assign/(:any)'] = 'work/assign/$1';

... ничего не делает Этот код:

$this->load->view("work/assign/" . $id);

... всегда будет искать файл в APPPATH/views/work/assign/$id.php который я предполагаю, не существует.

Вы хотите использовать второй параметр в view() загрузить переменные, например:

$this->load->view("work/assign", array('id' => $id));

Это загрузит файл представления work/assign.php и импортировать переменную $id,

Другие вопросы по тегам