こちらのサイトを参考にさせていただきbetweenでのバリデーションはかけられるようになったのですが、エラーメッセージが正しく表示されません。
まず以下のような書き換えを行いました。
php
1 protected function validateBetween($attribute, $value, $parameters) 2 { 3 //requestのバリデーションルールの中で他の属性の値を比較できるようにする(最大値のみ) 4 if (!is_numeric($parameters[1]) && 5 !is_null($val = $this->getValue($parameters[1]))) 6 { 7 $parameters[1] = $val; 8 } 9 10 $this->requireParameterCount(2, $parameters, 'between'); 11 12 $size = $this->getSize($attribute, $value); 13 14 return $size >= $parameters[0] && $size <= $parameters[1]; 15 }
仮に下記のようなルールでバリデーションをかけたものとします。
php
1'point' => 'between:1,num',
ここまででバリデーションは正しく動作していますが、エラーメッセージが**ポイントは1〜numまでの数値を入力してください。**というようになってしまいます。
次にサービスプロバイダを継承したValidatorServiceProvidorを作成し、そのbootメソッドの中に下記を追記しました。
php
1Validator::replacer('between', function($message, $attribute, $rule, $parameters) { 2 return str_replace(':max', $this->getAttribute($parameters[1]), $message); 3});
ここで__Call to undefined function App\Providers\getAttribute()__のエラーが発生してしまいました。
色々試してますがうまくいきません、どうしたらよいでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。