我有一个 Controller ,它有几个方法,它们都应该共享公共(public)信息。假设我的 URI 格式是这样的:
http://server/users/id/admin/index
http://server/users/id/admin/new
http://server/users/id/admin/list
http://server/users/id/admin/delete
我需要从数据库中为 id
检索一些信息,并让它们可用于所有方法,而不是在每个方法中写一行来调用模型。我该怎么做?
最佳答案
class users extends Controller {
private $mydata = array();
function users()
{
parent::Controller();
....
$this->mydata = $this->model->get_stuff($this->uri->segment(2));
}
function index()
{
$this->mydata; //hello data!
}
在这里,我只是对数组进行了硬编码(这可能是一个非常糟糕的主意)。不过,如果需要,您可以将数据存储在 codeigniter session 中。 Codeigniter 可以将此数据存储在 cookie 中(如果总大小小于 4kb),否则您可以在数据库中存储更大的数据 block (请参阅有关如何执行此操作的文档)。
参见:http://codeigniter.com/user_guide/libraries/sessions.html
小节:将 session 数据保存到数据库
这是一些 session 练习:
$this->session->set_userdata('mydata', $mydata);
....
$mydata = $this->session->userdata('mydata');
关于php - 将参数传递给 Controller 的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928058/