После того, как я думал, это проблема с $this->uri->segment(), я понял, что это проблема маршрутизации. Проблема в том, что я не могу понять, что не так, поскольку он выглядит точно так же, как другой маршрут, который я использую, который отлично работает, за исключением того, что у него есть два сегмента переменных, а не один (для маршрута, который работает).CodeIgniter - Проблемы с маршрутизации (четыре сегмента)
Файл Я пытаюсь показать расположен в:
[основной папке] /application/views/tasks/calendar/calendar.php
И я могу загрузить его с команда:
$route['tasks/calendar'] = 'tasks/calendar';
Однако, когда я хочу, чтобы передать текущий год и месяц, как последние два сегмента, он не работает:
$route['tasks/calendar/(:num)/(:num)'] = 'tasks/calendar/$1/$2';
Насколько мне известно, это должно означать, что связь, как это должно работать:
(...)/index.php/задачи/календарь/2015/03
Однако , Это не. Полный routes.php выглядит следующим образом:
$route['auth/(:any)'] = 'auth/view/$1';
$route['auth'] = 'auth';
$route['projects/delete/(:any)'] = 'projects/delete/$1';
$route['projects/create'] = 'projects/create';
$route['projects/(:any)'] = 'projects/view/$1';
$route['projects'] = 'projects';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
$route['category'] = 'category';
$route['category/(:any)'] = 'category/view/$1';
$route['tasks/create'] = 'tasks/create';
$route['tasks/calendar/(:num)/(:num)'] = 'tasks/calendar/$1/$2';
$route['tasks/calendar'] = 'tasks/calendar';
$route['tasks'] = 'tasks';
$route['tasks/(:any)'] = 'tasks/view/$1';
И мой контроллер, tasks.php, выглядит следующим образом:
public function calendar($year = null, $month = null) {
// Calender configuration (must be done prior to loading the library
$conf = array(
'start_day' => 'monday',
'show_next_prev' => true,
'next_prev_url' => base_url() . 'index.php/tasks/calendar'
);
// Load libraries and helpers
$this->load->library('calendar',$conf);
// Set variables for $data array
$data['year'] = $year;
$data['month'] = $month;
// Show page, including header and footer
$this->load->view('templates/header', $data);
$this->load->view('tasks/calendar', $data);
$this->load->view('templates/footer');
}
И очень простой вид файла, calendar.php, выглядит следующим образом:
<?php
echo "Selected year: ".$year." and month: ".$month;
echo $this->calendar->generate($year, $month);
Какого черта я делаю неправильно ? Удаленные маршруты для проектов работает просто отлично ...
Большинство ваших маршрутов, как 1 = 1. Вы ничего не делаете, устанавливая их так. – AdrienXL
Уход за разработкой? Все мои другие маршруты работают, как получилось, если у них нет функции? – Noceo
Конечно, они работают, поскольку они ничего не делают. Позвольте мне проиллюстрировать: '$ route ['auth'] = 'auth';' Средство перенаправляет любой URI, содержащий auth в сегменте, в auth-класс, т. Е. Tld/auth перенаправляет на .tld/auth. Idk, в чем ваша проблема, в первую очередь, но я не думаю, что причиной являются маршруты. – AdrienXL