如何在codeigniter中创建动态方法?

时间:2016-05-13 11:26:45

标签: php codeigniter

我正在使用带有控制器process.php的codeigniter创建一个站点。在其索引函数中,它从我的数据库中获取国家列表,并在我的视图中列出了每个国家/地区的超链接。我希望每个链接都有http://localhost/process/ $ countrycode的超链接,其中$ countrycode取决于所点击的国家/地区。

如何创建方法以获得如下链接: 美国http://localhost/process/us 加拿大http://localhost/process/ca

该方法将根据国家/地区执行任务。

根据我对codeigniter网址的理解,它是example.com/class/function/ID,但我想要实现的是不在URL中包含该功能

2 个答案:

答案 0 :(得分:0)

as far as i understand from your question, you should load view and pass countries to this view as $this->load->view('view_name',$array('countries'=>$countries_from_db)); then in view when you fill dropdown for example you will do the following:

<?php foreach($countries as $count): <a href ='localhost/process/<?=$country_id?>'><?= $country_name?></a>}
<?php endforeach;?>

i wish it helps you :)

答案 1 :(得分:0)

在你的文件route.php中添加新路由,如下所示

$route['add_route_name'] = 'controller/function';

如果你想传递参数,就像这样使用它

$route['add_route_name/(:any)'] = 'controller/function';

表示整数

$route['add_route_name/(:num)'] = 'controller/function';
codeigniter 3中的

使用/(.*) (:any),因为(:any)不适用于所有参数

例如,如果你想传递像这样的参数

http://localhost/projectname/12/books/etc/

在上面的url中我传递了3个参数,这些参数没有(:any)但是/(.*),我得到了3个参数的数组。

像这样使用它。

$route['add_route_name/(.*)'] = 'controller/function';