データベースにデータを保存する単純なフォームがあり、Title フィールドには、他のルールとともに is_unique 検証ルールがあります。私の TaskModel 検証ルールは次のとおりです:
リーリーこれで、データベースにデータを追加すると、すべてが期待どおりに実行されます。 問題は、レコードを更新しようとすると、たとえば作成者名を変更すると、フォームを送信すると、タイトルは一意である必要があると表示されることです。編集しているデータベース内のレコードの行を無視して、他の入力との一意性をチェックするようにしたいと考えています。 これを達成するのを手伝ってくれませんか?フォームを通じてレコード ID を渡し、一意性をチェックするときに無視することを考えていますが、ID を検証ルールに渡す方法がわかりません。
行の ID をパラメータとして is_unique ルールに渡すことができます。のように### リーリー ###お役に立てれば :)###
更新: 詳しい手順
2 番目のパラメータ Id
はデータベース フィールドの名前です。 3 番目はフォームから渡されたId です。これを行うには、編集フォームに隠しフィールドを追加し、その name = Id とその value=$data['Id']
を設定します。ここで、
$data['Id']は、データベースから取得されてビューに渡される行の
Idです。したがって、フォームが送信されると、
Id が $_POST で送信されます。次に、それをルール パラメーターに渡します。 {ID}######お役に立てれば :(######