2011-06-27 12 views
2

私は現時点で非公式のKohana 3.0ドキュメントを読んでいます。このコードはどこに属していますか?コントローラまたはモデル(class Model_MyName extends ORMモデル?)?私はそれがモデルになるべきだと思う。私は正しい?もしそうなら...なぜコントローラ上にあり、それをモデルに実装するのですか(save()メソッドで何かを変更する必要がありますか?)このコードはどこにありますか? MVC&ORM

$user = ORM::factory('user', 1); 
$user->name = 'Joe'; 
$user->values($_POST); 
if ($user->check()) { 
    $user->save(); 
} else { 
    $errors = $user->validate()->errors(); 
} 

「Model Validation」のコードhereから取得したコード。

+0

これまでのディスカッションに関する[this](http://forum.kohanaframework.org/discussion/4956/x)のトピックが見つかりましたが、私もあなたの考えを聞いてみたいと思います。 – daGrevis

答えて

0

コントローラに属します。このコードはORMファクトリの 'user'モデルを使用しています。

$ userは 'user'モデルのインスタンスです。あなたのケースでは、モデルはKohanaのORMによって提供されています。

+0

しかし、ビジネスロジックではありません。そのアプリケーションロジックとその理由は、モデルに配置する必要があります。私が間違っている? – daGrevis

+2

ビジネスロジックではありませんが、コントローラーは、モデルからビューおよびビューからモデルへの情報を処理することになっています。これはまさにこのコードがやっていることです。 '$ _POST'(view)からモデルに値を取得します。モデルは、コントローラがそうすることを可能にする 'values'関数を公開します。 モデルはsave()機能も公開しており、コントローラはおそらくビューの 'save'機能でユーザーのコマンドを実行しています。 –

関連する問題