Codeigniter PHP отсутствует аргумент 2 Ошибка?

У меня проблема с правильным отображением моих URL для моего сайта. Я использую последнюю версию Codeigniter.

Я получаю сообщение об ошибке ниже. Я проводил некоторые исследования и думаю, что моя проблема в сегментах URI, но я озадачен тем, как решить эту проблему.

Моя цель - сделать так, чтобы URL выглядел красиво (_states - это папка подкаталогов на моем локальном хосте) mydomain.com/_states/dealers/Florida (этот URL действительно работает) mydomain.com/_states/dealers/Florida/Miami (не работает) mydomain.com/_states/dealers/Florida/Miami/8 (не работает)

Я также предоставил синтаксис для моих rout.php и model_data.php. Как вы, ребята, собираетесь решить эту проблему? Спасибо всем заранее.

A PHP Error was encountered

Severity: Warning

Message: Missing argument 2 for Site::getDealersCity()

Filename: controllers/site.php

Line Number: 43

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: city

Filename: controllers/site.php

Line Number: 47

Контроллер сайта

   public function getDealersCity($state, $city){
     //$city = $this->uri->segment(3);
     //echo "$city";
     if(is_null($state)) return false;
     if(is_null($city)) return false;
     $this->load->model('model_data');
     $data['statecity'] = $this->model_data->get_database_by_cities($state,$city);
     $this->load->view('statecity',$data);
   }

Функция Model_data.php

function get_database_by_cities($state, $city){
    $query = $this->db->get_where('states',
    array('state' => $state,
    'city' => $city)
    );
    if($query->num_rows()) return $query->result();
    return null;
}

routes.php

$route['default_controller'] = "site";
$route['dealers/(:any)/(:any)'] = "site/getUniqueDealerInfo/$3";
$route['dealers/(:any)/(:any)'] = "site/getDealersCity/$2";
$route['dealers/(:any)'] = "site/getCities/$1";
$route['404_override'] = '';

1 ответ

Решение
$route['dealers/(:any)/(:any)'] = "site/getUniqueDealerInfo/$3";
$route['dealers/(:any)/(:any)'] = "site/getDealersCity/$2";

Маршруты противоречивы по своей природе, один маршрут перекрывает другой.

Попробуйте использовать

$route['dealers/(:any)/(:any)'] = "site/getDealersCity/$1/$2";

И нет функции для

getUniqueDealerInfo

Посмотрите ответы здесь. Похожие вопросы

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