Я создаю приложение CakePHP, у которого есть форма редактирования, которая содержит одно текстовое поле с именем air_id. В моей таблице я использую project_id и air_id как составной первичный ключ. Поэтому, обновляя air_id, мне нужно проверить уникальность. Моя структура таблицы как:Подтвердить поле как уникальное с областью действия в cakephp
project_id air_id
1 [email protected]
1 [email protected]
В настоящее время я использую cakephp3.0 и я использую правило validateUnique с областью, Ниже мой код:
$validator
->add('air_id', [
'unique' => [
'rule' => ['validateUnique', ['scope' => 'project_id']],
'provider' => 'table',
]
]);
И мой контроллер, как это
$projectCustomers = $this->ProjectCustomers->newEntity($formData);
Теперь он дает подтверждение валидации каждый раз. Мне нужно, когда я изменяю значение [email protected] на [email protected], он должен поднять ошибку, и если я изменю его на какое-то другое значение, он не должен поднимать ошибку. Что-то не так в моей проверке?
Вы хотите, чтобы поле 'air_id' было уникальным для конкретного project_id? –
«** _ Теперь он дает подтверждение валидации каждый раз, когда я менял значение [email protected] на [email protected]_**« Это именно то, что ожидается, учитывая содержимое ваших таблиц, где '1, test1 @ test.com' уже существует. Пожалуйста, обновите свой вопрос, указав правильные детали, описывающие фактическую техническую проблему, с которой вы сталкиваетесь. – ndm
@ndm Теперь он дает подтверждение валидации каждый раз. Мне нужно, когда я изменяю значение [email protected] на [email protected], он должен поднять ошибку, и если я изменю его на какое-то другое значение, он не должен поднимать ошибку. –