php - 将参数传递给 Controller ​​的构造函数

标签 php codeigniter codeigniter-routing

我有一个 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/

相关文章:

php - Codeigniter 分页第一页始终是当前页

php - 如何在CodeIgniter中为403禁止的错误设置自定义页面

CodeIgniter 路由不起作用

基于通配符的php字符串比较

php - 如何使用 TinyMCE、jQuery 和 PDO 提交 HTML 表单? (完整代码)

php - 为什么本应该发布公司名称却发布 ID?

php - 为什么我在 codeigniter 中收到 "cannot modify header information headers already sent by registration_model"错误?

php - 如何在 codeigniter 中使用 insert_batch 插入多个数据

php - 将视频存储在 phpmyadmin 数据库中

codeigniter - 更改 url 以获得更好的 SEO