Codeigniter redirect () не работает должным образом - PullRequest
0 голосов
/ 24 октября 2018

Я начал работать с Codeigniter.Итак, у меня есть два контроллера Задачи и Проект.В моем контроллере задач есть функция для редактирования существующей задачи, и после того, как задача отредактирована, я хочу перенаправить в метод отображения контроллера Projects, который принимает параметр в качестве project_id, связанного с задачей.Вот мой контроллер задач

 public function edit($task_id,$task_project_id){
    $this->form_validation->set_rules('task_name', 'Task Name','trim|required');
    $this->form_validation->set_rules('task_description', 'Task Description','trim|required');
    if ($this->form_validation->run() == FALSE){
        $result=$this->task_model->get_task($task_id);
        $data['task_name']=$result->task_name;
        $data['due_on']=$result->due_on;
        $data['task_description']=$result->task_description;
        $data['id']=$task_id;
        $data['task_project_id']=$task_project_id;
        $data['main_view']="tasks/edit_task";
        $this->load->view('layout/user', $data);
    } else { 
            $data['task_project_id']=$task_project_id;
            $data['task_name']=$this->input->post('task_name');
            $data['due_on']=$this->input->post('due_on');
            $data['task_description']=$this->input->post('task_description');
            $data['id']=$task_id;
            if ($this->task_model->edit($data)){
            $this->session->set_flashdata('task_edited' ,'Task Edited Succesfully');
            redirect(projects/display/$task_project_id); THIS SEEMS TO BE THE PROBLEM .
        }else{
            $this->session->set_flashdata('task_edited_failure' ,'Task Not Edited Succesfully');
            redirect(projects/edit);
        }
    }
}

Вот мой контроллер проектов с его индексом и функцией отображения:

    public function index()
{
        $data['projects']=$this->projects_model->get_projects();
        $data['main_view']="projects/home_view";
        $this->load->view('layout/user.php',$data);
}
public function display($project_id){
        $data['task']=$this->task_model->get_tasks($project_id);
        $data['project']=$this->projects_model->get_project($project_id);
        $data['main_view']="projects/display";
        $this->load->view('layout/user.php',$data);
}

Итак, в моем контроллере задач я пытаюсь перенаправить на контроллер проектовметод отображения с использованием перенаправления (projects / display / $ task_project_id) в качестве функции отображения контроллера проектов - display ($ project_id).Но это перенаправляет меня на индексную функцию контроллера проекта.Что не так с перенаправлением?Я думал, что структура URL в CI была контроллером / функцией / параметром1 / параметром2.Очень ценю вашу помощь.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018
redirect($uri = '', $method = 'auto', $code = NULL)

Функция redirect () в codeigniter использует URL, который вы определили в своем корне.Вы не можете напрямую перейти к контроллеру.

0 голосов
/ 24 октября 2018

Вы допустили ошибку при написании функции перенаправления.Это должно быть так, как показано ниже.

redirect('projects/display/'.$task_project_id);

redirect('projects/edit');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...