【发布时间】:2010-08-24 09:35:58
【问题描述】:
当我们加载一个视图时,我们可以向它传递一些动态数据。
我想要实现的是当视图没有接收到数据时,它使用一些从模型(数据库)加载的默认数据。
问题是我真的不想将这些语句(加载默认数据)放在视图中。
什么是最简单的可用解决方案,不使用任何扩展,如模块化扩展/分离?
非常感谢大家。
【问题讨论】:
标签: php model-view-controller codeigniter
当我们加载一个视图时,我们可以向它传递一些动态数据。
我想要实现的是当视图没有接收到数据时,它使用一些从模型(数据库)加载的默认数据。
问题是我真的不想将这些语句(加载默认数据)放在视图中。
什么是最简单的可用解决方案,不使用任何扩展,如模块化扩展/分离?
非常感谢大家。
【问题讨论】:
标签: php model-view-controller codeigniter
使用Base Controllers 将全局数据放入您的视图中。
【讨论】:
您确实不想从视图中调用模型(这就是控制器的用途)。
在控制器中检查数据;如果您要查找的数据不存在,请调用模型以获取“默认数据”(当您在控制器中时)。然后将数据传递给视图。
【讨论】:
我想出了一些东西,希望这会有所帮助。
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);
}
}
【讨论】: