CodeIgniter-将函数/类放在何处?

CodeIgniter-将函数/类放在何处?,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,我在理解CI中的类应该保留在哪里时遇到问题。我正在构建一个描述/销售手机的应用程序 我希望我的所有函数(如getphone、getdetails等)都位于一个名为Mobile的类中-我知道该文件应命名为Mobile.php并位于controllers文件夹中 那么,我可以在Mobile.php中拥有多个函数吗?例如 public function getphone() { xxx xx xx } public function getdetails() { xxx

我在理解CI中的类应该保留在哪里时遇到问题。我正在构建一个描述/销售手机的应用程序

我希望我的所有函数(如getphone、getdetails等)都位于一个名为Mobile的类中-我知道该文件应命名为Mobile.php并位于controllers文件夹中

那么,我可以在Mobile.php中拥有多个函数吗?例如

public function getphone() {
   xxx
   xx
   xx
}

public function getdetails() {
   xxx
   xx
   xx
}
或者我需要把每个函数放在它自己的类中吗

我真的很想看一些有效的示例代码。我已经浏览了文档和google几个小时,并尝试了URL中的各种变体来查找测试类,但运气不太好!我甚至弄乱了路线和通道

我一直在努力实现以下目标:

$this->load->library('car');
$my_car = new Car();
http:///model/HTC-Desire/ 重新路由到一个函数,该函数接受HTC Desire作为参数(因为我需要它进行DB查找)。默认控制器工作正常,但此后无法使任何东西工作

有什么想法吗


谢谢

是的,一个控制器类中可以有任意多个函数。它们可以通过url
/class/function
访问

您可以在类函数中捕获参数,但这是不可取的

class Mobile extends CI_Controller{

    public function getPhone($phoneModel=''){
        echo $phoneModel;
        //echo $this->input->post('phoneModel');
    }
}

http://site.com/mobile/getPhone/HTC-Rad 从理论上讲,它将呼应“HTC Rad”。但是,默认情况下,CI中的URL不欢迎使用特殊字符,因此在本例中,您可能会遇到“不允许的URI字符”错误。您最好传递电话型号(或任何其他参数)通过
$\u向控制器发布

是的,您可以在控制器类中拥有任意数量的函数。可以通过url
/class/function
访问这些函数

您可以在类函数中捕获参数,但这是不可取的

class Mobile extends CI_Controller{

    public function getPhone($phoneModel=''){
        echo $phoneModel;
        //echo $this->input->post('phoneModel');
    }
}

http://site.com/mobile/getPhone/HTC-Rad 从理论上讲,它会呼应“HTC Rad”。但是,默认情况下,CI中的URL不欢迎使用特殊字符,因此在本例中,您可能会遇到“不允许的URI字符”错误。您最好通过
$\u POST
将手机型号(或任何其他参数)传递给控制器

类既可以作为
控制器
存在,也可以作为
模型
存在,因为CodeIgniter实现了。我建议阅读更多关于这方面的内容,以了解如何最好地组织您的类/函数等


在我脑海中,是一个用CodeIgniter构建的应用程序,源代码是免费提供的。我相信还有其他的。

类可以作为
控制器和
模型存在,因为CodeIgniter实现了。我建议阅读更多关于这方面的内容,以了解如何最好地组织您的类/函数等


在我脑海中,是一个用CodeIgniter构建的应用程序,源代码是免费提供的。我肯定还有其他的。

实际上它是这样工作的:

如您所知,控制器和模型将转到其透视图文件夹

如果要创建不是对象方法的函数,则必须创建辅助文件。更多信息请点击此处:

现在,如果要创建自己的数据类型(不扩展模型和控制器的类),可以将它们添加到库文件夹中。如果你想创建一个类“Car”,你可以创建这个文件:

class Car{

   function __construct(){}
}
并将其保存在libraries文件夹中,名为car.php

要创建汽车类的实例,必须执行以下操作:

$this->load->library('car');
$my_car = new Car();
有关图书馆的更多信息,请点击此处:

实际上它是这样工作的:

如您所知,控制器和模型将转到其透视图文件夹

如果要创建不是对象方法的函数,则必须创建辅助文件。更多信息请点击此处:

现在,如果要创建自己的数据类型(不扩展模型和控制器的类),可以将它们添加到库文件夹中。如果你想创建一个类“Car”,你可以创建这个文件:

class Car{

   function __construct(){}
}
并将其保存在libraries文件夹中,名为car.php

要创建汽车类的实例,必须执行以下操作:

$this->load->library('car');
$my_car = new Car();
有关图书馆的更多信息,请点击此处:

我认为你最好从一个角度来处理它,那就是;创建一个包含所有函数的实用程序类。 将类文件放置在何处的问题的答案是“libraries”文件夹。 文件中明确说明了这一点将您的类放入libraries文件夹

当我们使用术语“库”时,我们通常指的是 位于libraries目录中并在中描述的类 本用户指南的类参考

您可以阅读有关创建和使用库的更多信息

将新创建的类放入libraries文件夹后,只需在控制器中加载库即可使用,如下所示:

$this->load->library('yourphpclassname');
$params = array('type' => 'large', 'color' => 'red');

$this->load->library('yourphpclassname', $params);
$this->yourphpclassname->some_method();
如果希望在构造函数中接收多个参数,则必须对其进行修改,以接收一个参数,该参数将是一个数组,并且加载/初始化将略有不同,如下所示:

$this->load->library('yourphpclassname');
$params = array('type' => 'large', 'color' => 'red');

$this->load->library('yourphpclassname', $params);
$this->yourphpclassname->some_method();
然后,要访问类中的任何函数,只需执行如下操作:

$this->load->library('yourphpclassname');
$params = array('type' => 'large', 'color' => 'red');

$this->load->library('yourphpclassname', $params);
$this->yourphpclassname->some_method();

我希望这能回答您的问题,如果您有进一步的问题,请留下评论,我会很好地回答他们。

我认为您最好从一个角度来处理它,即;创建一个包含所有函数的实用程序类。 将类文件放置在何处的问题的答案是“libraries”文件夹。 文件中明确说明了这一点将您的类放入libraries文件夹

当我们使用术语“库”时,我们通常指的是 位于libraries目录中并在中描述的类 本用户指南的类参考

您可以阅读有关创建和使用库的更多信息

放置新创建的CLA之后