首页 文章

在Codeigniter 3中路由

提问于
浏览
0

我正在重新学习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 回答

  • 2

    在CodeIgniter中讨论URL,你从不提及 application/config/routes.php 文件 . 你看到了吗 ..?

    routes.php 文件中,您可以创建URL名称并将其映射到您拥有的控制器/功能

    像这样:

    $route['user/update'] = 'user_controller/update_data_function'
    

    所以,您可以在 User_controller.php 中调用URL http://your.site/index.php/user/update 来执行 update_data_function()

相关问题