rules
この問題は、次のようにKohana の -system を使用して実際に解決できます。
Model_User_Image
1親の ID に影響する検証ルールを に追加します。Model_User
メソッドを指定してを使用できますmax_no_images
。
public function rules()
{
return array(
'user_id' => array(
array( array('Model_User', 'max_no_images') ),//automatically use value of the field as parameter
),
);
}
2 を 2 つの方法で変更しModel_User
ます。まず、許容される画像の最大数を決定するために、定数またはその他の種類の変数が必要です。max_no_images
次に、画像の最大数に達しているかどうかを確認するを定義する必要があります (そうであれば、false を返します)。ORM 経由で簡単に実行できますが、クエリを直接使用すると高速になる場合があります。
public static function max_no_images($user_id)
{
$number_of_children = ORM::factory('User', $user_id)->children->count_all();
return ($number_of_children < Model_User::max_children);
}
ここに投稿されたコードはテストされていませんが、少し異なるバリエーションでテストしたため、この方法は実際に機能します。ドキュメントで、検証のために同じモデルから指定された関数をどのように使用したかを確認してください
この問題に対処できるもう 1 つの方法は、SQL ルールを使用することです。これ以上は言いませんが、画像のエントリを挿入/更新するときに画像の数をチェックする必要があるため、考え方からすると ORM アプローチとまったく同じです。