2

我使用 Codeigniter 已经有一段时间了,我希望拥有处理逻辑的业务对象,如下所示:

$comment = new Comment($this->input->post());
$blog = new Blog();
$current_post = $blog->get_current_post();
$current_post->add_comment($comment);

$data['current_post'] = $current_post;
$this->load->view('post_view',$data);

而不是这种方法:

$this->load->model('comment_model');
$this->load->model('blog_model');
$this->load->model('post_model');

$comment = $this->comment_model->create_from_array($this->input->post());
$blog = $this->blog_model->get_blog();
$current_post = $this->post_model->get_current_post($blog);
$this->post_model->add_comment($current_post,$comment);

$data['current_post'] = $current_post;
$this->load->view('post_view',$data);
4

1 回答 1

0

你想要的是改变 codeigniter 的工作方式,而不加载模型,它如何知道从哪里获取数据?如果你想按照你建议的方式去做,你将不得不扩展核心控制器类并对你的代码做出很多假设。例如,当您创建一个新实例 Comment() 时,它应该加载一个模型,并且传递给它的参数应该访问该模型中的某个方法。

您只需为已经存在的功能制作一个很好的包装器,这很好,但最终您的代码可能看起来更好,但它仍然可以正常工作。

于 2012-11-02T15:04:26.940 回答