Symfony2 -обратный валидация установила ошибка на свойство полеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Symfony2 -обратный валидация установила ошибка на свойство поле

Сообщение Anonymous »

Я использую валидатор обратного вызова в Symfony 2.0.4 для проверки коллекции встроенных форм. Я пытаюсь увидеть, дублируется ли одно из полей форм в любой из форм и если да, чтобы добавить ошибку в это поле.

Вот код: < /p>
/**
* @Assert\Callback(methods={"isPriceUnique"})
*/
class Pricing {
protected $defaultPrice;
protected $prices;

public function isPriceUnique(ExecutionContext $context){
//Get the path to the field that represents the price collection
$propertyPath = $context->getPropertyPath().'.defaultPrice';

$addedPrices = $this->getPrices();
\array_unshift($addedPrices, $this->getDefaultPrice());

for($i=0; $igetCountry();

//Check for duplicate pricing options(whose country has been selected already)
if($isetPropertyPath($propertyPath.'.'.$j.'.country');
$context->addViolation('product.prices.unique', array(), null);
break;
}
}
}
}
}
< /code>
Поле ценого $ - это множество ценных организаций, каждый из которых имеет собственность страны. Страна также добавлена ​​и в тип формы.

Я хотел бы добавить ошибку только в собственность страны, но, похоже, Symfony не позволяет мне указать что -то более сложное, чем $ Propertypath. '.field'.

Может ли кто -нибудь сказать мне, какой синтаксис для $ propertypath, который позволил бы мне указать поле, установленное на более низком уровне в иерархии? < /p>
обновление:
Кажется, что проверка выполняется должным образом и после изучения конструктора класса Propertypath Я уверен, что путь, который я используется правильно. Проблема заключается в том, что указанное сообщение не отображается на местах страны, как и ожидалось.

Подробнее здесь: https://stackoverflow.com/questions/132 ... y-of-field
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»