Ich versuche, meine eigene benutzerdefinierte Laravel benutzerdefinierte Validierungsregel mit dem Service Provider Weg zu erstellen.Laravel benutzerdefinierte Validierung Rückgabe Methode doesnot exist
kam ich mit dem Follow-up, die im Inneren app/Services/CustomValidator.php
<?php
namespace App\Services;
class CustomValidator extends \Illuminate\Validation\Validator {
public function __construct($translator, $data, $rules, $messages = array(), $customAttributes = array())
{
parent::__construct($translator, $data, $rules, $messages, $customAttributes);
$this->setCustomMessages([
'not_empty_string'=> 'The field must not be empty'
]);
}
public function validateNotEmptyString($attribute, $value, $parameters)
{
return (bool) preg_match('/""/', $value);
}
}
?>
und mein Provider innerhalb der Provider Ordner
<?php
namespace App\Providers;
use Validator;
use Illuminate\Support\ServiceProvider;
use App\Services\CustomValidator;
class CustomValidationServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new CustomValidator($translator, $data, $rules, $messages);
});
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
gespeichert gespeichert ist, und ich habe den Provider zu meiner config/app.php hinzugefügt
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Laravel\Spark\Providers\SparkServiceProvider::class,
App\Providers\SparkServiceProvider::class,
Laravel\Cashier\CashierServiceProvider::class,
//custom classes
Felixkiss\UniqueWithValidator\UniqueWithValidatorServiceProvider::class,
App\Providers\CustomValidationServiceProvider::class
],
Der Provider ich hinzugefügt scheint Konflikt mit wi th der Felixkiss Provider
als wenn ich versuche
private $rules = [
'name' => 'required|unique_with:tests,suite_id',
'description' => 'not_empty_string|required',
'expected_result' => 'not_empty_string|required',
'suite_id' => 'required',
'project_id' => 'required',
];
ich komme mit dem folgenden Fehler zu überprüfen, die eigentlich eine Methode, auf dem anderen Anbieter. Ich bin mir nicht sicher, was das Problem hier ist, da ich anscheinend alles nach dem Buch gemacht habe.
Sehen Sie, ob dies hilft https://github.com/felixkiss/uniquewith-validator/issues/4 –
Danke, check it out. Hoffentlich hilft das, es zu lösen. – Bazinga777