2013-06-04 91 views
-1

我在正确显示我网站的网址时遇到问题。我正在使用最新版本的Codeigniter。Codeigniter PHP缺少参数2错误?

我收到以下错误消息。我正在做一些研究,我认为我的问题是URI段,但我很困惑如何解决这个问题。

我的目标是让URL看起来不错这 (_states是子目录文件夹在我的本地) mydomain.com/_states/dealers/Florida(此URL实际工作) mydomain.com/_states/经销商/佛罗里达州/迈阿密(不工作) mydomain.com/_states/dealers/Florida/Miami/8(不工作)

我也提供了我的routes.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

的帮助表示感谢尝试。它工作得很好! –