Illuminate\Validation\Validator
'da doReplacements
yöntemini geçersiz kılmaya çalışıyorum.Laravel 5.2 - Validator sınıfının genişletilmesi
ReflectionException in Route.php line 270:
Class App\Http\Requests\FooRequest does not exist
Bu benim yaptığım budur:
yerli
Illuminate\Validation\Validator
uzatın:class MyCustomValidator extends Validator { protected function doReplacements($message, $attribute, $rule, $parameters) { //override this method } }
kullanın
uzantısıMyCustomValidator
I yerliValidator
veRequest
sınıfları uzatmak zaman bu hatayı alıyorum doğal birApp\Http\Requests\Request
:abstract class MyCustomRequest extends Request { //Override native method by injecting the extending validator protected function formatErrors(MyCustomValidator $validator) { return $validator->getMessageBag()->toArray(); } }
beton sınıfı ile
MyCustomRequest
uzatın:class FooRequest extends MyCustomRequest { public function authorize() { return true; } public function rules() { return [ // rules go here ]; } }
bir kontrolör yönteminde
FooRequest
kullanın:public function store(FooRequest $request) { //use the request and persist }
Ben tahmin ediyorum ben gerekli bir cephe eksik am , sağlayıcı veya kapsayıcı ciltleme. Hala bu konuları öğreniyorum ve iyi bir sonraki adımı bilmek için onları yeterince iyi anlamadım.
Referanslar:
- - cevabı izledi ancak hala aynı hata var. Burada denediğim sorunu gidermeden önce bunun problemimle uzaktan ilişkili olup olmadığını bilmek istiyorum.
Extending Custom Validation-Class - Sorun cevabı ben
AppServiceProvider
yapılabilir biliyorumValidator::extend
, kullanılmasını önerir, benzer, ama ideal olarak benim kod kendi satıcı paketinde olmalıdır. Yine, ilgili olup olmadığından emin değilim.public function validator(\Illuminate\Contracts\Validation\Factory $factory) { $this->addExtraRules($factory); return $factory->make( $this->all(), $this->container->call([$this, 'rules']), $this->messages(), $this->attributes() ); }
ve şimdi örneğin
addExtraRules
yöntemini uygulamak gerekir: Ne yapabilirsiniz
dışarı yorum yapabilirsiniz. Açıklama için düzenlenmiş soru – bsapaka