for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Xetaravel\Models\Validators;
use Illuminate\Support\Facades\Validator as FacadeValidator;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Validator;
class UserValidator
{
/**
* Get the validator for an incoming registration request with a social provider.
*
* @param array $data The data to validate.
* @return Validator
*/
public static function createWithProvider(array $data): Validator
$rules = [
'username' => 'required|alpha_num|min:4|max:20|unique:users',
'email' => 'required|email|max:50|unique:users'
];
return FacadeValidator::make($data, $rules);
}
* Get a validator for an incoming update request. (Administration)
* @param int $id The actual user id to ignore the username rule.
public static function update(array $data, int $id): Validator
'username' => [
'required',
'alpha_num',
'min:4',
'max:20',
Rule::unique('users')->ignore($id)
],
'email' => [
'email',
'max:50',
'account.first_name' => 'max:100',
'account.last_name' => 'max:100',
'account.facebook' => 'max:50',
'account.twitter' => 'max:50',
'roles' => 'required'