Cách xác thực email bằng mã chức năng quy tắc xác thực mô hình Yii. Ngoài ra cách kiểm tra email tồn tại hoặc không sử dụng chức năng Quy tắc xác thực mô hình trong Yii.Làm cách nào để xác thực email và email đã tồn tại hoặc không kiểm tra, trong Yii Framework?
Trả lời
Bạn có thể thiết lập kiểm chứng thực mô hình của bạn như sau
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
//First parameter is your field name of table which has email value
array('email', 'email','message'=>"The email isn't correct"),
array('email', 'unique','message'=>'Email already exists!'),
);
}
Yii liên kết tham khảo Để biết thêm chi tiết: http://www.yiiframework.com/wiki/56/
Bạn có thể tạo phương pháp xác nhận tùy chỉnh của bạn để đáp ứng yêu cầu của bạn.
Tạo một hàm trong lớp mô hình:
public function uniqueEmail($attribute, $params)
{
// Set $emailExist variable true or false by using your custom query on checking in database table if email exist or not.
// You can user $this->{$attribute} to get attribute value.
$emailExist = true;
if($emailExist)
$this->addError('email','Email already exists');
}
tài phương pháp xác nhận này trong các quy tắc:
array('email', 'uniqueEmail','message'=>'Email already exists!'),
Bạn có thể dễ dàng tìm thấy hoặc email là đã có trong db của bạn hay không bằng cách xác định quy tắc .
Đây là quy tắc.
array('xxx', 'unique', 'className' => 'SomeClass', 'attributeName' => 'SomeAttribute'),
Ví dụ.
public function rules() {
return array(
...
array('email', 'unique', 'className' => 'User', 'attributeName' => 'email', 'message'=>'This Email is already in use'),
...
);
}
Ở đây tôi muốn đưa xác nhận vào Email, đó là duy nhất, tên lớp mô hình của tôi là dùng, AttributeName là tên trường của bảng bao gồm email và nếu email là đã có trong bảng của bạn sau đó hiển thị tin nhắn.
Nếu có lỗi, bạn có thể thay đổi bảng của mình và tạo trường duy nhất cho email.
ALTER TABLE người dùng ADD UNIQUE (email)
Sau đó kiểm tra.
xác thực email khác ở bên dưới. mà tôi nghĩ rằng bộ hoàn chỉnh xác nhận email.
public function rules() {
return array(
...
array('email', 'required'),
array('email', 'length', 'max'=>200),
array('email', 'email', 'message'=>'Email is not valid'),
array('email', 'unique', 'className' => 'User', 'attributeName' => 'email', 'message'=>'This Email is already in use'),
...
); }
Vậy đó. Cảm ơn
Xác thực tùy chỉnh, mã ngắn và ngọt. thử này nó làm việc tốt -
public function rules()
{
return array(
array('email, first_name, last_name, password, repeat_password', 'required'),
array('email', 'email','message'=>"The email isn't correct"),
array('email', 'uniqueEmail'),
);
}
ghi chức năng tùy chỉnh này vào cùng một mô hình -
public function uniqueEmail($attribute, $params)
{
if($user = User::model()->exists('email=:email',array('email'=>$this->email)))
$this->addError($attribute, 'Email already exists!');
}
Đối Yii2 tôi đã sử dụng sau đây trong một mô hình gọi là ký mà sẽ sử dụng tài khoản Class.
public function rules()
{
return [
['Email', 'filter', 'filter' => 'trim'],
['Email', 'required'],
['Email', 'email'],
['Email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
];
}
Bạn cần phải sử dụng targetClass và đặt Namepsace cho lớp tài
theo vài những sửa đổi như sau: Thực hiện theo tập tin của bạn theo mô-đun của bạn, bạn đã sử dụng.
Chuyển đến mô hình -> open-> Users.php -> Sửa đổi dòng như được đề cập bên dưới.
public function rules()
{
return [
[['User_Email'], 'unique'],
[['User_Mobile'],'unique'],
];
}
Bây giờ Tới views-> người dùng -> Open _form.php-> viết code như đã đề cập dưới đây
<div class="users-form">
<?php $form = ActiveForm::begin([
'id' => $model->formName(),
'enableAjaxValidation' => true,
]); ?>
<?= $form->field($model, 'User_Email')->textInput(['maxlength' => true])?>
<?= $form->field($model, 'User_Mobile')->textInput(['maxlength' => true])?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
Bây giờ Tới điều khiển -> mở UsersController.php -> wirte mã như đã đề cập dưới đây
public function actionCreate()
{
if(Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())){
Yii :: $app->response->format = 'json';
return \yii\bootstrap\ActiveForm::validate($model);
}
}
Cảm ơn bạn
- 1. Làm thế nào để kiểm tra xem một id email có tồn tại hay không?
- 2. cách kiểm tra xem địa chỉ email cụ thể có tồn tại trong C# không?
- 3. bash và telnet để kiểm tra email
- 4. Cách kiểm tra logic email với Play Framework
- 5. Kiểm tra xem tệp có tồn tại trong Yii
- 6. Làm cách nào để http: // user: [email protected] xác thực?
- 7. Kiểm tra xem một email tồn tại với TELNET và PHP
- 8. Kiểm tra email gửi
- 9. Làm cách nào để kiểm tra tệp tồn tại và thực thi lệnh nếu không?
- 10. java: làm cách nào tôi có thể xác minh địa chỉ email hợp lệ mà không gửi email xác nhận?
- 11. Mongoose - xác thực cú pháp email
- 12. Kiểm tra xem địa chỉ email paypal có phải là người dùng đã xác minh không
- 13. Kiểm tra email bằng Python
- 14. Email php xác thực
- 15. NSRegularExpression xác thực email
- 16. Làm cách nào để kiểm tra xem có tồn tại ẩn hoặc rõ ràng không?
- 17. PHP xác nhận email
- 18. Có miền chuẩn để kiểm tra email "throwaway" không?
- 19. Cách xác thực id email trong lược đồ xml
- 20. Xác thực mẫu email cùng một lúc
- 21. Cấu hình email Jenkins - Kiểm tra cấu hình email thành công nhưng email không được người dùng nhận
- 22. Cách kiểm tra xem một thực thể đã tồn tại trong cửa hàng liên tục
- 23. Xác thực email Microsoft SQL Server
- 24. Kiểm tra email Ruby (RFC 2822)
- 25. Kiểm tra xem chuỗi có chứa địa chỉ email không?
- 26. làm thế nào để kiểm tra xem đối tượng đã tồn tại trong một danh sách
- 27. Làm cách nào để xác định các ngoại lệ đã kiểm tra và không được kiểm tra trong java?
- 28. Cách tốt nhất để kiểm tra xem mục có tồn tại hay không: Chọn Đếm (ID) HOẶC Hiện tại (...)?
- 29. Kiểm tra xem người dùng đã tồn tại trong drupal
- 30. Phương pháp tốt nhất để kiểm tra xem tên người dùng đã tồn tại trong xác thực biểu mẫu