Я начал работать с 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 ответа
Вы ошиблись при написании функции перенаправления. Это должно быть так, как показано ниже.
redirect('projects/display/'.$task_project_id);
redirect('projects/edit');
redirect($uri = '', $method = 'auto', $code = NULL)
Функция redirect () в codeigniter использует URL-адрес, указанный вами в корне. Вы не можете напрямую перейти к контроллерам.
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.