Я начал работать с 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. Очень признателен за вашу помощь.

0
Knownow 24 Окт 2018 в 08:32

2 ответа

Лучший ответ

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

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

redirect('projects/edit');
1
Talk2Nit 24 Окт 2018 в 05:39
redirect($uri = '', $method = 'auto', $code = NULL)

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

1
Abhishek 24 Окт 2018 в 05:42
52961658