1

選択ドロップダウン メニューがあり、ユーザーがデータベース内のフィールドに対して 2 つのオプションを選択できるようにします。問題は、選択オプションの重複を禁止する方法です。現在、同じオプションであってもすべてのオプションを保存しています。

選択オプションの add.ctp のコードは次のとおりです。

echo $this->Form->select("ProgrammeChoice.programme_code.0",$finals);
echo $this->Form->select("ProgrammeChoice.programme_code.1",$finals);

また、変数$finalsはデータベース内の別のテーブルから選択オプションを取得しています。これはコントローラー内にあり、コードは次のとおりです。

$finals = array_merge($filtered_programs,$non_preq_programs);

選択メニューを検証して、送信時に重複選択を拒否する方法を教えてください。

4

1 に答える 1

0

カスタム検証ルールを作成し、次の説明に従って値を比較します: http://book.cakephp.org/2.0/en/models/data-validation.html#adding-your-own-validation-methods

検証方法では、データは に保存され$this->dataます。

次のようになります。

public function compare($field1) {
    if($field1 === $this->data['ProgrammeChoice']['programm_code']['1']) {
        return false;
    }
    return true;
}
于 2012-06-25T18:32:53.313 に答える