Codeigniter: 在模型和控制器之间、模型和模型之间、控制器和控制器之间使用变量的最简单方法

4

这真的很难吗?

我想整理一下我的代码,把数据库查询放在模型中,把控制器中属于控制器的所有其他代码放在控制器中。

现在我一直收到未定义变量错误。 这不是问题,但我正在努力解决如何在文件之间调用变量。

我只想把注册时生成的随机哈希存储在变量中,因为那是我在发送到用户电子邮件的“点击此处激活帐户”链接的锚点中使用的变量。

我还在将该变量用于比较在其电子邮件中URL末尾的uri哈希与存储在数据库中的哈希的方法中,以便用户确认其帐户并将数据库中的“状态”更新为1(已激活)。

我非常感谢一些建议。 我喜欢这个学习过程。 失眠但享受它,因为它让我逻辑思考。

1个回答

5

如果变量在另一个文件中,你无法直接访问它。相反,你应该将它设置在你的类中。

class User_model extends Model {

    // Declare the foo variable
    public $foo = "";

    function blah() {

        // You can set variable foo this way from any controller/model that includes this model
        $this->foo = "dog";

        // You can access variable foo this way
        echo $this->foo;
    }
}

是的,你可以将一个变量设置为函数的返回值,但这似乎不是你所问的。 - fire
我的问题是当我编写代码并在控制器中使用模型中的方法时,我遇到了未定义变量的问题。例如,在模型中设置的变量无法在从该模型方法加载的控制器方法中使用。这是我遇到的一个问题,另一个问题是有时我在模型或控制器中将变量从一个方法传递到另一个方法。 - LondonGuy
仅做一个快速的注释,如果你需要在模型构造函数中调用函数blah(),你将不再能够echo $this->foo,因为你会得到一个“头信息已经发送”的错误。你仍然可以在函数blah()中访问变量值,但如果你特别需要echo一些东西,它必须从视图而不是模型中完成。 - DrewT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,