2011-06-24 10 views
0

ORMを使うことを学び始めたばかりです.Joeが初めてKo3を学び始めたときにJellyと一緒に行って、いくつかの質問に遭遇しました。私。Kohanaでモデルを宣言する際のいくつかの質問ORM

最初に、モデルを宣言すると、フィールドを分解することなく、モデルを使用するのに十分であることがわかりました。これは私が気付いていないオートマティックですか?もしそうなら...それはパフォーマンス上の問題を引き起こし、避けなければならないのでしょうか?

私はまた、ルールを宣言する2つの異なる方法に気付きました...これらの2つの方法の違いは何ですか?

public function rules() { 
    return array(
     'categoryname' => array(
      array('not_empty'), 
     ), 
    ); 
} 

protected $_rules = array(
    'categoryname' => array(
     'not_empty' => true, 
    ), 
); 

答えて

2
  1. はい、ORMは自動的に空のモデルにSHOW COLUMNSを呼び出します。しかし、あなたは単にcache itです。
  2. rules()をKohana 3.1(3.0は$_rulesのプロパティを使用)で追加しました。これで、リターンルールリストの前にロジックを適用できます。例えば、拡張モデルのためのよりよい:
public function rules() 
{ 
    return parent::rules() + array('foo' => 'bar'); 
} 
+0

は非常に明確で、有用な答えをありがとう...リンク...偶然にあなたが答えを知っていた場合だけ思っていましたそのフォーム上の最後の質問に.... "3.0ではこのメタデータのクロスリクエストもキャッシュされますか?"私の好奇心はすべて....... – Serhiy

+0

AFAIR、 'Database'モジュールは現在のリクエストのみのクエリをキャッシュします。それらを手動でキャッシュする必要があります( 'Kohana :: cache()'コールまたは特別な 'Cache'モジュールを使用して)。または '$ table_columns'プロパティにモデルフィールドを定義してください。 – biakaveron

関連する問題