2011-06-27 60 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(); 
} 

代碼取自「模型驗證」下的here

+0

我已經找到[this](http://forum.kohanaframework.org/discussion/4956/x)這個話題,但我很想聽聽你的想法。 – daGrevis

回答

0

它屬於控制器。這段代碼顯然使用了ORM工廠的'用戶'模型。

$ user是「用戶」模型的一個實例。在你的情況下,模型由Kohana的ORM提供。

+0

但它不是業務邏輯。它的應用程序邏輯,這就是爲什麼應該位於模型中。我錯了嗎? – daGrevis

+2

它不是業務邏輯,但控制器應該處理從模型到視圖和視圖到模型的信息。這正是這個代碼正在做的。從'$ _POST'(view)獲取值來建模。該模型公開了允許控制器執行的「值」功能。 該模型還暴露了save()功能,並且控制器正在執行用戶的命令,可能是在視圖上的「save」功能。 –