Skip to content

Instantly share code, notes, and snippets.

@Faks
Forked from emsifa/README.md
Created October 4, 2018 19:46
Show Gist options
  • Save Faks/8c1a393bf0f566ab21c939d599da2a1f to your computer and use it in GitHub Desktop.
Save Faks/8c1a393bf0f566ab21c939d599da2a1f to your computer and use it in GitHub Desktop.
Laravel 5.1 Validation Outside Laravel

Laravel 5.1 Validation Outside Laravel

First you need to install illuminate/validation by typing this composer require illuminate/validation:5.1.*.

Then, you can use laravel validation like this:

$validatorFactory = new ValidatorFactory;

$validator = $validatorFactory->make($_POST, [
    'username' => 'required|alpha_dash',
    'email' => 'required|email',
    'password' => 'required|min:6',
    'confirm_password' => 'required|same:password'
]);

if ($validator->fails()) {
    // do something with error messages
    $errors = $validator->errors(); // errors collection
    $error_email = $errors->first('email');
    $error_username = $errors->first('username');
    $list_errors = $errors->all('<li>:message</li>');
}
<?php
use Illuminate\Validation\Factory;
use Symfony\Component\Translation\Loader\ArrayLoader;
use Symfony\Component\Translation\MessageSelector;
use Symfony\Component\Translation\Translator;
class ValidatorFactory
{
protected $factory;
public function __construct()
{
$translator = $this->setupTranslator();
$this->factory = new Factory($translator);
}
protected function setupTranslator()
{
$translator = new Translator('en', new MessageSelector);
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', [
'validation' => [
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.',
'filled' => 'The :attribute field is required.',
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'json' => 'The :attribute must be a valid JSON string.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
],
'not_in' => 'The selected :attribute is invalid.',
'numeric' => 'The :attribute must be a number.',
'present' => 'The :attribute field must be present.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values is present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
],
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.',
'url' => 'The :attribute format is invalid.'
]
], 'en');
return $translator;
}
public function __call($method, $args)
{
return call_user_func_array([$this->factory, $method], $args);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment