123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 |
- <?php
-
- namespace Illuminate\Validation\Concerns;
-
- use Illuminate\Support\Arr;
-
- trait ReplacesAttributes
- {
- /**
- * Replace all place-holders for the between rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceBetween($message, $attribute, $rule, $parameters)
- {
- return str_replace([':min', ':max'], $parameters, $message);
- }
-
- /**
- * Replace all place-holders for the date_format rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceDateFormat($message, $attribute, $rule, $parameters)
- {
- return str_replace(':format', $parameters[0], $message);
- }
-
- /**
- * Replace all place-holders for the different rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceDifferent($message, $attribute, $rule, $parameters)
- {
- return $this->replaceSame($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the digits rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceDigits($message, $attribute, $rule, $parameters)
- {
- return str_replace(':digits', $parameters[0], $message);
- }
-
- /**
- * Replace all place-holders for the digits (between) rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceDigitsBetween($message, $attribute, $rule, $parameters)
- {
- return $this->replaceBetween($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the min rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceMin($message, $attribute, $rule, $parameters)
- {
- return str_replace(':min', $parameters[0], $message);
- }
-
- /**
- * Replace all place-holders for the max rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceMax($message, $attribute, $rule, $parameters)
- {
- return str_replace(':max', $parameters[0], $message);
- }
-
- /**
- * Replace all place-holders for the in rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceIn($message, $attribute, $rule, $parameters)
- {
- foreach ($parameters as &$parameter) {
- $parameter = $this->getDisplayableValue($attribute, $parameter);
- }
-
- return str_replace(':values', implode(', ', $parameters), $message);
- }
-
- /**
- * Replace all place-holders for the not_in rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceNotIn($message, $attribute, $rule, $parameters)
- {
- return $this->replaceIn($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the in_array rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceInArray($message, $attribute, $rule, $parameters)
- {
- return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message);
- }
-
- /**
- * Replace all place-holders for the mimetypes rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceMimetypes($message, $attribute, $rule, $parameters)
- {
- return str_replace(':values', implode(', ', $parameters), $message);
- }
-
- /**
- * Replace all place-holders for the mimes rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceMimes($message, $attribute, $rule, $parameters)
- {
- return str_replace(':values', implode(', ', $parameters), $message);
- }
-
- /**
- * Replace all place-holders for the required_with rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceRequiredWith($message, $attribute, $rule, $parameters)
- {
- return str_replace(':values', implode(' / ', $this->getAttributeList($parameters)), $message);
- }
-
- /**
- * Replace all place-holders for the required_with_all rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceRequiredWithAll($message, $attribute, $rule, $parameters)
- {
- return $this->replaceRequiredWith($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the required_without rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceRequiredWithout($message, $attribute, $rule, $parameters)
- {
- return $this->replaceRequiredWith($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the required_without_all rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceRequiredWithoutAll($message, $attribute, $rule, $parameters)
- {
- return $this->replaceRequiredWith($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the size rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceSize($message, $attribute, $rule, $parameters)
- {
- return str_replace(':size', $parameters[0], $message);
- }
-
- /**
- * Replace all place-holders for the gt rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceGt($message, $attribute, $rule, $parameters)
- {
- return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message);
- }
-
- /**
- * Replace all place-holders for the lt rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceLt($message, $attribute, $rule, $parameters)
- {
- return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message);
- }
-
- /**
- * Replace all place-holders for the gte rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceGte($message, $attribute, $rule, $parameters)
- {
- return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message);
- }
-
- /**
- * Replace all place-holders for the lte rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceLte($message, $attribute, $rule, $parameters)
- {
- return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message);
- }
-
- /**
- * Replace all place-holders for the required_if rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceRequiredIf($message, $attribute, $rule, $parameters)
- {
- $parameters[1] = $this->getDisplayableValue($parameters[0], Arr::get($this->data, $parameters[0]));
-
- $parameters[0] = $this->getDisplayableAttribute($parameters[0]);
-
- return str_replace([':other', ':value'], $parameters, $message);
- }
-
- /**
- * Replace all place-holders for the required_unless rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceRequiredUnless($message, $attribute, $rule, $parameters)
- {
- $other = $this->getDisplayableAttribute($parameters[0]);
-
- $values = [];
-
- foreach (array_slice($parameters, 1) as $value) {
- $values[] = $this->getDisplayableValue($parameters[0], $value);
- }
-
- return str_replace([':other', ':values'], [$other, implode(', ', $values)], $message);
- }
-
- /**
- * Replace all place-holders for the same rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceSame($message, $attribute, $rule, $parameters)
- {
- return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message);
- }
-
- /**
- * Replace all place-holders for the before rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceBefore($message, $attribute, $rule, $parameters)
- {
- if (! (strtotime($parameters[0]))) {
- return str_replace(':date', $this->getDisplayableAttribute($parameters[0]), $message);
- }
-
- return str_replace(':date', $parameters[0], $message);
- }
-
- /**
- * Replace all place-holders for the before_or_equal rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceBeforeOrEqual($message, $attribute, $rule, $parameters)
- {
- return $this->replaceBefore($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the after rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceAfter($message, $attribute, $rule, $parameters)
- {
- return $this->replaceBefore($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the after_or_equal rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceAfterOrEqual($message, $attribute, $rule, $parameters)
- {
- return $this->replaceBefore($message, $attribute, $rule, $parameters);
- }
-
- /**
- * Replace all place-holders for the dimensions rule.
- *
- * @param string $message
- * @param string $attribute
- * @param string $rule
- * @param array $parameters
- * @return string
- */
- protected function replaceDimensions($message, $attribute, $rule, $parameters)
- {
- $parameters = $this->parseNamedParameters($parameters);
-
- if (is_array($parameters)) {
- foreach ($parameters as $key => $value) {
- $message = str_replace(':'.$key, $value, $message);
- }
- }
-
- return $message;
- }
- }
|