【问题标题】:Default data for a view in codeignitercodeigniter 中视图的默认数据
【发布时间】:2010-08-24 09:35:58
【问题描述】:

当我们加载一个视图时,我们可以向它传递一些动态数据。

我想要实现的是当视图没有接收到数据时,它使用一些从模型(数据库)加载的默认数据。

问题是我真的不想将这些语句(加载默认数据)放在视图中。

什么是最简单的可用解决方案,不使用任何扩展,如模块化扩展/分离?

非常感谢大家。

【问题讨论】:

    标签: php model-view-controller codeigniter


    【解决方案1】:

    使用Base Controllers 将全局数据放入您的视图中。

    【讨论】:

      【解决方案2】:

      您确实不想从视图中调用模型(这就是控制器的用途)。

      在控制器中检查数据;如果您要查找的数据不存在,请调用模型以获取“默认数据”(当您在控制器中时)。然后将数据传递给视图。

      【讨论】:

        【解决方案3】:

        我想出了一些东西,希望这会有所帮助。

        class Test extends Controller
        {
            private $data = array();
        
            public function __construct()
            {
                parent::__constuct();
        
                // Load the default data
                $this->load->model('test_model');
        
                $this->data = $this->test_model->get_default_data();
            }
        
            public function test()
            {
                $this->load->model('test_model');
                $data = $this->test_model->get_another_data();
        
                if ( ! empty($data)) {
                    $this->data = $data;
                }
        
                $this->load->view('test_view', $this->data);
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-21
          • 2013-05-11
          相关资源
          最近更新 更多