如何在codeigniter中创建一个动态方法


How do i create a dynamic method in codeigniter?

我正在使用带有控制器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;?>

我希望它能帮助你:)