我正在使用带有控制器process.php的codeigniter创建一个网站。在其索引函数中,它从我的数据库中获取国家列表,并在我的视图中列出每个国家的超链接。我希望每个链接都有一个http://localhost/process/$countrycode,其中$countrycode取决于所单击的国家/地区。
如何创建一个方法以具有链接,例如:http://localhost/process/us对于美国http://localhost/process/ca加拿大
该方法将根据国家执行任务。
根据我对codeigniter URL的理解,它是example.com/class/function/ID,但我想实现的是不在URL 中包含该函数
在文件route.php中添加新路由,如下
$route['add_route_name'] = 'controller/function';
如果你想传递参数,像这个一样使用它
$route['add_route_name/(:any)'] = 'controller/function';
对于整数
$route['add_route_name/(:num)'] = 'controller/function';
在代码点火器3中,将/(.*)
用于(:any)
,因为(:any)不适用于所有参数
例如,如果你想传递像这样的参数
http://localhost/projectname/12/books/etc/
在上面的url中,我传递了3个参数,这3个参数不是用(:any)
得到的,但在/(.*)
中,我得到了三个参数的数组。
像这样使用它。
$route['add_route_name/(.*)'] = 'controller/function';
据我所知,您应该加载视图并将国家/地区作为$this->load->view('view_name',$array('countries'=>$countries_from_db));
传递给该视图然后在视图中,例如,当您填写下拉列表时,您将执行以下操作:
<?php foreach($countries as $count): <a href ='localhost/process/<?=$country_id?>'><?= $country_name?></a>}
<?php endforeach;?>
我希望它能帮助你:)