Browse Source

Merge pull request #15805 from FabrizioCaldarelli/15801-activefield-form-group-missing-has-error-class

Fixed has-error class to ActiveField div container when attribute nam…
tags/2.0.14.2
Dmitry Naumenko 7 years ago committed by GitHub
parent
commit
f0aaa9fc74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      framework/CHANGELOG.md
  2. 5
      framework/widgets/ActiveField.php
  3. 11
      tests/framework/widgets/ActiveFieldTest.php

4
framework/CHANGELOG.md

@ -4,6 +4,7 @@ Yii Framework 2 Change Log
2.0.14.2 under development
------------------------
- Bug #15801: Fixed `has-error` CSS class assignment in `yii\widgets\ActiveField` when attribute name is prefixed with tabular index (FabrizioCaldarelli)
- Bug #15792: Added missing `yii\db\QueryBuilder::conditionClasses` setter (silverfire)
@ -2131,6 +2132,3 @@ Yii Framework 2 Change Log
- [Smarty View Renderer](https://github.com/yiisoft/yii2-smarty)
- [Twig View Renderer](https://github.com/yiisoft/yii2-twig)

5
framework/widgets/ActiveField.php

@ -930,7 +930,10 @@ class ActiveField extends Component
*/
protected function addErrorClassIfNeeded(&$options)
{
if ($this->model->hasErrors($this->attribute)) {
// Get proper attribute name when attribute name is tabular.
$attributeName = Html::getAttributeName($this->attribute);
if ($this->model->hasErrors($attributeName)) {
Html::addCssClass($options, $this->form->errorCssClass);
}
}

11
tests/framework/widgets/ActiveFieldTest.php

@ -247,6 +247,17 @@ EOT;
$this->assertEquals($expectedValue, $this->activeField->parts['{label}']);
}
public function testTabularInputErrors()
{
$this->activeField->attribute = '[0]'.$this->attributeName;
$this->helperModel->addError($this->attributeName, 'Error Message');
$expectedValue = '<div class="form-group field-activefieldtestmodel-0-attributename has-error">';
$actualValue = $this->activeField->begin();
$this->assertEquals($expectedValue, $actualValue);
}
public function hintDataProvider()
{
return [

Loading…
Cancel
Save