使用Code Igniter时如何将变量传递给模型的__construct函数?

时间:2013-05-30 16:17:30

标签: php codeigniter

当我从控制器调用变量时,我试图将变量传递给模型...

$ this-> load-> model('some_model',$ var1,$ var2);

从控制器索引函数中的URL收集$ var1和$ var2。但是这些没有在代码中被提取?

这是否完全可能,因为从模型开始它们是非常重要的?

感谢。

2 个答案:

答案 0 :(得分:1)

你真的不能用内置的加载器,模型loading code hardcoded和空new参数(至少在2.1版本中)。

您可能希望将代码移动到库,因为库加载可以使用选项see here获取第二个数组参数。

由于CI的加载器只会创建这些类的一个实例,因此您可以将配置移动到配置文件中,并从__construct中读取它们。

或者你可以扩展Loader类并重新实现model()方法来获取一些参数(如果你不介意有第四个参数或类似的东西)。

答案 1 :(得分:1)

模型在加载时不接受数据参数。模型反映了应用程序的基础数据模型。这绝不应该根据用户输入而改变。

以下是the documentation for loading models我确定您已经阅读过(希望您不仅仅是通过猜测编程编程);有一个可选的第二个参数,允许您覆盖模型的名称,但没有传递数据的工具。

相反,请考虑使用,或将这些参数传递给任何需要它们的模型函数。