本文整理汇总了PHP中BaseFormDoctrine::doBind方法的典型用法代码示例。如果您正苦于以下问题:PHP BaseFormDoctrine::doBind方法的具体用法?PHP BaseFormDoctrine::doBind怎么用?PHP BaseFormDoctrine::doBind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BaseFormDoctrine
的用法示例。
在下文中一共展示了BaseFormDoctrine::doBind方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doBind
/**
*
*/
protected function doBind(array $values)
{
$values['id'] = $this->getObject()->getId();
// это поле всегда лишнее
if (array_key_exists('password_repeat', $values)) {
unset($values['password_repeat']);
}
// эту х-ню делать в модели
if (isset($values['user_service_mail']) && !empty($values['user_service_mail'])) {
$values['user_service_mail'] = $values['user_service_mail'] . '@mail.easyfinance.ru';
}
parent::doBind($values);
// не обновлять e-mail если идентичен или когда не введен пароль
if (isset($this->values['user_mail']) && !empty($this->values['user_mail']) && $this->getObject()->getUserMail() != $this->values['user_mail']) {
if (!isset($this->values['password']) || empty($this->values['password'])) {
unset($this->values['user_mail'], $this['user_mail'], $this->values['password']);
}
}
// обновить пароль, если задан новый (и не пустой) и старый
if (isset($this->values['password']) && !empty($this->values['password']) && isset($this->values['password_new']) && !empty($this->values['password_new'])) {
$this->values['password'] = $this->values['password_new'];
unset($this->values['password_new'], $this['password_new']);
// не трогать пароль без необходимости
} else {
unset($this->values['password'], $this->values['password_new'], $this['password'], $this['password_new']);
}
return $values;
}
示例2: doBind
/**
* Подмешивает дополнительные поля и значения:
* знак у суммы и прочая требуха
* @see sfForm
*/
protected function doBind(array $values)
{
// не используем поля в зависимости от типа операции
switch ($values['type']) {
case Operation::TYPE_BALANCE:
unset($this['date'], $this['transfer_account_id'], $this['transfer_amount']);
$values['accepted'] = true;
if (!empty($values['id'])) {
$validator = new sfValidatorDoctrineUnique(array('model' => 'Operation', 'column' => array('account_id', 'type')), array('invalid' => sprintf('Duplicate balance operations for account %s', $values['account_id'])));
$validator->clean($values);
}
break;
case Operation::TYPE_TRANSFER:
unset($this['category_id']);
break;
default:
unset($this['transfer_account_id'], $this['transfer_amount']);
break;
}
// в зависимости от подтвержденности операции отключаем необходимости полей
if (!$values['accepted']) {
$this->setDraftValidation();
}
parent::doBind($values);
switch ($this->values['type']) {
case Operation::TYPE_TRANSFER:
$this->values['amount'] = -abs($this->values['amount']);
$this->values['transfer_amount'] = abs($this->values['transfer_amount']);
break;
case Operation::TYPE_EXPENSE:
$this->values['amount'] = -abs($this->values['amount']);
break;
case Operation::TYPE_BALANCE:
$this->values['comment'] = "Начальный остаток";
break;
default:
$this->values['amount'] = abs($this->values['amount']);
break;
}
}
示例3: doBind
protected function doBind(array $values)
{
parent::doBind($values);
}
示例4: doBind
/**
* Подмешать во входящие параметры поля, которые сможет использовать PostValidator
* для проверки уникальности ID-операции AMT
*/
protected function doBind(array $values)
{
$values['source_uid'] = Operation::SOURCE_AMT;
$values['source_operation_uid'] = isset($values['id']) ? $values['id'] : '';
parent::doBind($values);
}
示例5: doBind
protected function doBind(array $values)
{
$values = $this->filterValuesByEmbeddedMediaForm($values, 'image_id');
$values = $this->filterValuesByEmbeddedMediaForm($values, 'file_id');
parent::doBind($values);
}