2013-06-04 4 views
-1

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

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

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

Я также предоставил синтаксис для моих маршрутов.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'] = ''; 

ответ

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

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

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

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

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

getUniqueDealerInfo

Взгляните на ответы здесь Similar Question

+0

спасибо за помощь. Он отлично работает! –