让我们选择我们的问候 Hello World 或 Good Bye World 或......

假设我们想要一个可以通过不同的 URL 访问的替代问候语。我们可能会为此创建一个新功能甚至是一个新的控制器,但最佳做法是优化我们已有的功能,使其最佳工作!

为此,我们将保持与前面示例中相同的视图,但我们将向我们的函数引入一个参数,以便它能够在两个不同的问候语之间进行选择:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Hello_world extends CI_Controller {
    
    public function __construct() {
        parent::__construct();
    }

    public function greetings($my_greetings){
        switch($my_greetings)
        {
            case 'goodbye':
                $say = 'Good Bye World';
            break;
            case 'morning':
                $say = 'Good Morning World';
            break;
            default:
                $say = 'Hello World';
        }
        $data = array('greetings'=>$say);
        $this->load->view('hello_world',$data);
    }
}

现在我们有多个问候选项! 为了使它们可视化,我们将在 URL 中添加参数,如下所示:

http://[your_domain_name]/hello_world/greetings/goodbye

这将向我们展示信息:再见世界

URL 的结构如下:

http://[your_domain_name]/[controller_name]/[function_name]/[parameter_1]

在这种情况下,为了回到我们旧的 Hello World,只需调用前一个 url,不带参数:

http://localhost/hello_world/greetings

你可以向函数添加多个参数(例如,如果你需要其中 3 个参数):

public function greetings($param1,$param2,$param3)

并且可以使用以下网址填写它们:

http://[your_domain_name]/[controller_name]/[function_name]/[param1]/[param2]/[param3]

例如 http://localhost/hello_world/greetings/goodbye/italian/red

这样,你可以直接从 URL 传递给你的参数将影响将要显示的内容。

要了解有关如何通过 URL 传递参数的更多信息,你可能需要查看路由主题!