我正在重新学习PHP和codeigniter,但我不禁注意到我的网址看起来有多丑 .
所以我有一个页面控制器:说让我们加载主页 .
它看起来像这样:
public function home(){
$this->load->view('template/header');
$this->load->view('template/navbar');
$this->load->view('pages/home');
$this->load->view('template/footer');
}
我想这很不错,因为我的网址可能会像这样: http://localhost/ProjectName/index.php/pages/home
但每当我点击涉及更多数据处理的链接时,例如我可以说我的家有一个用户列表,我点击一个查看他们的 Profiles . 我当然必须通过一些东西来确定我要加载哪个配置文件,所以我的链接看起来像这样:
http://localhost/OnlineStories/index.php/pages/view_userprofile/1
在我的控制器ID中有:
public function view_userprofile(){
$userid = $this->uri->segment(3);
//process data then load view
}
我不是要求任何高级的东西,但我想问一些简单的事情来改进我的网址,就像命名控制器功能的正确标准一样 .
例如:在以前的加载我的主页的实例上,我的函数名称是 view_home
现在它只是 home
所以它更干净 .
也许我可以将 view_userprofile
重命名为 user_profile
.
无论如何有没有更好的方法将值从视图传递到除uri段之外的控制器?它一直在使用,所以我从来没有多想过 . 我见过一些使用get()但是idk如果它比uri段好吗?
或者我应该坚持使用uri段并保留我的url作为控制器/方法/参数?
我还没有真正探索过codeigniter中的项目后抛光,所以如果这是一种抛光/更改url(只是名称)的方法 .
1 回答
在CodeIgniter中讨论URL,你从不提及
application/config/routes.php
文件 . 你看到了吗 ..?在
routes.php
文件中,您可以创建URL名称并将其映射到您拥有的控制器/功能像这样:
所以,您可以在
User_controller.php
中调用URLhttp://your.site/index.php/user/update
来执行update_data_function()