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 に答える