ホームページ >PHPフレームワーク >ThinkPHP >Thinkphp5.1 の電子メール検証の問題について話しましょう
次のthinkphp フレームワークチュートリアル コラムでは、Thinkphp5.1 の電子メール検証の問題について説明します。困っている友人の役に立てば幸いです。
具体的な質問:
たとえば、このメールが正当なものであるかどうかを確認したいのですが、TP 独自の確認ルールを使用したいのですが、どのように確認すればよいですか?マニュアルでは User クラスを定義する必要があるようですが、ユーザー検証用に \app\index\validate\User validator クラスを定義します。 TP フレームワークが電子メールのユーザー名を確認するのはそれほど面倒ですか?このバリデータークラスはどこに記述すべきでしょうか?コントローラーと同じディレクトリにありますか?
<?php namespace app\index\controller; use think\Controller; use think\facade\Request; use think\response; use think\View; use think\Validate; class Register extends Controller { public function regcheck(){ $data=input('email'); } } ?>
解決策:
単一の検証が必要な場合は、それを静的に呼び出すことができます。
// 验证是否有效邮箱地址 use think\facade\Validate; Validate::isEmail('thinkphp@qq.com'); // true
検証するものが多数ある場合は、バリデーターを使用することをお勧めします。
バリデーター クラスはディレクトリをカスタマイズでき、\app\index\validate ディレクトリに配置することをお勧めします。
バリデータ クラス
namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', ]; protected $message = [ 'name.require' => '名称必须', 'name.max' => '名称最多不能超过25个字符', 'email' => '邮箱格式错误', ]; }
コントローラーでの使用:
namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { $data = [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ]; $validate = new \app\index\validate\User; if (!$validate->check($data)) { dump($validate->getError()); } } }
以上がThinkphp5.1 の電子メール検証の問題について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。