私のフィールドusername
は常に現在のユーザーのユーザー名で埋められています。そして、それは常に(提出の)私のInformationForm
にユーザー名値を送信し、次のようなユニークでそれを検証:Yii2の現在のユーザーのユーザー名を除いて、 `User`テーブルの` username`を確認するには
[['username'], 'unique', 'targetAttribute' => 'username', 'targetClass' => '\common\models\User', 'message' => 'This username can not be taken.'],
そしてそれは、このユーザ名はすでに使用されていることのことを言います。だから、私の値username
をチェックしたいのですが、それは私のユーザー名ではありません。ただ>ボブ (それは私のユーザー名ですので、明らかに)私はSubmit
をクリックし、このユーザ名が一意である場合、それはチェックshould't
そして - フィールドにビューで>ボブ マイ値username
- それは のように、データベース内の私の現在のユーザー名ですそして、私の現在のデータベース内のユーザー名 - フィールドにビューで>ボブ と価値username
- >ジョン と私はSubmit
をクリックします - さを確認する必要があり、このユーザー名は、私は私ができる「カスタムバリデータ」について知っ
一意である場合InformationForm
に自分の書かれた方法を使って自分のフィールドを検証してください。そして、私は自分の書かれた方法を私のInformationForm
に使っている以外は、私がここに書いたすべてのことをする方法を見つけたいと思っています。
この入力を取得するためだけに、インフォメーションモデルを作成しましたか?あなたはする必要がないからです。そして、それはおそらくあなたがこの問題に唯一のバリデーターで直面している理由です。 – Clyff
@Clyff、私は自分のフィールドを検証するためのモデルInformationFormを作成し、それらを(もし新しいものであれば)データベースに入れます。 – Link