Проверка PHP Phalcon Уникальность, но допускает пустые значения - PullRequest
0 голосов
/ 29 марта 2019

У меня есть следующая проверка:

use Phalcon\Validation;
use Phalcon\Validation\Validator\Uniqueness;

class Users extends BaseModel {
    public function validation() {
        $validator = new Validation();
        $validator->add('some_data', new Uniqueness([
                    'message' => 'this field must be unique or epmty'
        ]));
        // some other rules (...)
        return $this->validate($validator);
    }
}

Вопрос в том, как разрешить передачу пустых данных.Я хотел бы сохранить в базе данных NULL, если данные пустые или уникальное значение, если оно передано.

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Вы также можете сделать это

public function validation()
{
    $validator = new Validation();

    if (!empty($this->getSomeData())) {
        $validator->add('some_data', new Uniqueness([
            'message' => 'this field must be unique or epmty'
        ]));
    }
    // some other rules (...)
    return $this->validate($validator);
}
0 голосов
/ 29 марта 2019

Хорошо, я нашел решение с CallbackValidator


    $validator->add('some_data', new CallbackValidator([
                    "callback" => function($data) {
                        if (!empty($data->getSomeData())) {
                            return new Uniqueness([
                                "message" => "this field must be unique or epmty"
                            ]);
                        }
                    }
        ]));

...