Exemplo n.º 1
0
 /**
  * Generates a tag that contains the first validation error of the specified model attribute.
  *
  * Note that even if there is no validation error, this method will still return an empty error tag.
  *
  * @param Model  $model     the model object
  * @param string $attribute the attribute name or expression. See {@see \rock\widgets\ActiveHtml::getAttributeName()} for the format
  *                          about attribute expression.
  * @param array  $options   the tag options in terms of name-value pairs. The values will be HTML-encoded
  *                          using {@see \rock\template\Html::encode()} . If a value is null, the corresponding attribute will not be rendered.
  *
  * The following options are specially handled:
  *
  * - tag: this specifies the tag name. If not set, "div" will be used.
  * - encode: boolean, if set to false then value won't be encoded.
  *
  * See {@see \rock\template\Html::renderTagAttributes()} for details on how attributes are being rendered.
  *
  * @return string the generated label tag
  */
 public static function error($model, $attribute, $options = [])
 {
     $attribute = static::getAttributeName($attribute);
     $error = $model->getFirstError($attribute);
     if (empty($error)) {
         return '';
     }
     $tag = isset($options['tag']) ? $options['tag'] : 'div';
     $encode = !isset($options['encode']) || $options['encode'] !== false;
     unset($options['tag'], $options['encode']);
     return static::tag($tag, $encode ? static::encode($error) : $error, $options);
 }