我一直在使用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);
答案 0 :(得分:0)
你想要的是改变codeigniter的工作方式,而不加载模型它将如何知道从哪里获取数据?如果你想按照你的建议去做,你将不得不扩展Core控制器类并对你的代码做出很多假设。例如,当你创建一个新的实例Comment()时,它应该加载一个模型,传递给它的参数应该访问该模型中的某个方法。
你只需要为已经存在的功能做一个很好的包装,这很好,但最后你的代码可能看起来更好但它仍然可以工作。