2015-01-06 6 views
1

Я пытаюсь избежать модификации пакета поставщика для этой проблемы. Когда я добавляю настраиваемые поля и вызываю свой собственный валидатор, я не могу подтвердить электронное письмо пользователя с кодом подтверждения из-за правил проверки. В настоящее время использовать это для моей таможенной проверки в app/models/UserValidator.php:Laravel + Confide: не удалось подтвердить пользователь с помощью специальной проверки

<?php 

use Zizaco\Confide\UserValidator as ConfideUserValidator; 
use Zizaco\Confide\UserValidatorInterface; 

class UserValidator extends ConfideUserValidator implements UserValidatorInterface { 

    // Custom rules for account validation 
    public $rules = [ 
     'create' => [ 
      'first_name' => 'required|alpha|max:100', 
      'last_name' => 'required|alpha|max:100', 
      'username' => 'required|min:3|max:20|alpha_dash', 
      'email' => 'required|email|unique:users|max:100', 
      'password' => 'required|min:8', 
     ], 
     'update' => [ 
      'username' => 'required|min:3|max:20|alpha_dash', 
      'email' => 'required|email|unique:users|max:100', 
      'password' => 'required|min:8', 
     ] 
    ]; 

} 

я могу создать учетную запись прекрасно, это просто подтверждение того, что не будет работать. Я backtraced его vendor/zizaco/confide/src/Confide/ConfideUser.php - я нашел, если я закомментируйте это под функцией save:

if ($this->isValid()) { 
    return parent::save($options); 
} 

return false; 

и заменить его временно с этим:

return parent::save($options); 

тогда все будет работать, как это предполагается. Я что-то упустил? Должно ли правило обновления иметь что-то относительно столбца confirmed?

EDIT: Предоставление пустого массива для update набора правил избавляются от ошибок, но мне нужно, чтобы проверить эти поля, когда пользователь обновляет свой профиль ..

ответ

3

Я думаю, что проблема в том, что вы пытаясь подтвердить, что адрес электронной почты пользователя уникален после того, как они уже зарегистрированы. Таким образом, их электронная почта уже находится в базе данных (и, следовательно, не уникальна). Удаление «уникально: пользователи | "должно разрешить вам проверять свои поля.

'update' => [ 
     'username' => 'required|min:3|max:20|alpha_dash', 
     'email' => 'required|email|max:100', 
     'password' => 'required|min:8', 
    ] 
+0

Да, именно так. Спасибо! – Winter

Смежные вопросы