将数据从控制器传递到另一个控制器

时间:2012-02-16 16:35:30

标签: php codeigniter

是否存在使用php框架CodeIgniter将数据从控制器传递到其他控制器的方法?我的意思是我在控制器中有一些数据,我会将它们传递给另一个控制器....

2 个答案:

答案 0 :(得分:1)

你的问题有点违背了MVC模式的目的。控制器不应该“彼此了解”。如果是这种情况,您可能会遇到严重的耦合问题。

如果可以,尝试通过URI(无状态RESTful)“传递”信息,就像@stormdrain建议的那样。如果您无法维持无国籍状态,请使用会话数据。

会话数据更适合您正在做的事情,特别是如果您需要应用程序“记住”会话中早期发生的事情。 CI有一个非常好的内部库(虽然它没有一些记录的缺陷,公平警告):

http://codeigniter.com/user_guide/libraries/sessions.html

答案 1 :(得分:0)

$_POST数据会将数据传递给另一个控制器。您也可以像这样使用params:

class Test extends CI_Controller{
    function page($param=""){
        echo $param;
    }
}

http://site.local/test/page/blah会为您提供一个带有“blah”字样的空白页面。但是,通过int之外的params传递数据并不是一个好主意(比如id)...如果不使用int,通常会有不允许的url字符。