【Fuel】Validationクラスのget_messageの前後に任意のタグを設定する


【Fuel】Validationクラスのget_messageの前後に任意のタグを設定する | Bamboo lath 日々の記録【Fuel】Validationクラスのget_messageの前後に任意のタグを設定する

FuelPHPのValidationクラスでget_messageメソッドでエラーを出力するときに
前後にデフォルトで指定のタグを付加する方法。

といっても\fuel\core\classes\validation\error.phpをのぞいたら
ドキュメントに無い設定項目があったのでそれをconfigに設定するだけ。
※試しているバージョンは1.7.2

■fuel/core/classes/validation/error.php

	/**
	 * Get Message
	 *
	 * Shows the error message which can be taken from loaded language file.
	 *
	 * @param   string  HTML to prefix error message
	 * @param   string  HTML to postfix error message
	 * @param   string  Message to use, or false to try and load it from Lang class
	 * @return  string
	 */
	public function get_message($msg = false, $open = '', $close = '')
	{
		$open   = empty($open)  ? \Config::get('validation.open_single_error', '')  : $open;
		$close  = empty($close) ? \Config::get('validation.close_single_error', '') : $close;

		if ($msg === false and ! ($msg = $this->field->get_error_message($this->rule)))
		{
			if (is_null($msg))
			{
				$msg = $this->field->fieldset()->validation()->get_message($this->rule);
			}
			if ($msg === false)
			{
				$msg = \Lang::get('validation.'.$this->rule) ?: \Lang::get('validation.'.\Arr::get(explode(':', $this->rule), 0));
			}
		}
		if ($msg == false)
		{
			return $open.'Validation rule '.$this->rule.' failed for '.$this->field->label.$close;
		}

		// only parse when there's tags in the message
		return $open.(strpos($msg, ':') === false ? $msg : $this->_replace_tags($msg)).$close;
	}

■fuel/app/config/config.php

・・・
        /**
         * Validation settings
         */
        'validation' => array(
                /**
                 * Wether to fallback to global when a value is not found in the input array.
                 */
                // 'global_input_fallback' => true,
                'open_single_error' => '<div class="error">',
                'close_single_error' => '</div>',
        ),
・・・

これでget_messageのたびにタグを渡さなくて済む。

コメントを残す

メールアドレスが公開されることはありません。