この記事の主な内容は、thinkphp5.1 バリデーターのシナリオ検証でパラメーターを渡す方法の紹介です。これには一定の参照意義があります。興味のある友人は詳細を学ぶことができます。
A シナリオ: ユーザーは自分のニックネームを保存します。別のユーザーがすでにこのニックネームを使用している場合、保存は許可されませんが、ユーザーが変更を加えていない場合、新しいニックネームが使用される可能性があるため、現在のユーザー自身を除外する必要があります。昔のニックネームと同じように保存されました。
ニックネームは唯一のルール
'name' => 'unique:user',
を定義するため、現在のユーザーであっても同じニックネームを変更せずに保存することはできません。
解決策: コントローラーで、バリデーターの唯一のチャネル $data パラメーター
## を介して uid (主キー) をバリデーターに渡します。
#
//控制器代码 $data['uid'] = 10; $validate = $this->validate($data, 'app\common\validate\User.info');
このように、バリデーターは現在の主キーを自動的に除外し、現在の主キーをスムーズに保存できます。独自性に縛られない。
同じ問題に遭遇した場合は、それを参照してください。
以上が[PHP] シーン検証でパラメータを渡すための TP5.1 バリデータの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。