You can create a method validator in your form request :
public function validator($factory)
{
}
This method must return a factory. Look at this method in parent :
protected function getValidatorInstance()
{
$factory = $this->container->make('Illuminate\Validation\Factory');
if (method_exists($this, 'validator'))
{
return $this->container->call([$this, 'validator'], compact('factory'));
}
return $factory->make(
$this->formatInput(), $this->container->call([$this, 'rules']), $this->messages()
);
}
So you can do all special validation in this function. But for a phone number simple regex must be sufficient in casual way.
For an extension of validator there are these 2 methods in Factory to register them :
/**
* Register a custom validator extension.
*
* @param string $rule
* @param \Closure|string $extension
* @param string $message
* @return void
*/
public function extend($rule, $extension, $message = null)
{
$this->extensions[$rule] = $extension;
if ($message) $this->fallbackMessages[snake_case($rule)] = $message;
}
/**
* Register a custom implicit validator extension.
*
* @param string $rule
* @param \Closure|string $extension
* @param string $message
* @return void
*/
public function extendImplicit($rule, $extension, $message = null)
{
$this->implicitExtensions[$rule] = $extension;
if ($message) $this->fallbackMessages[snake_case($rule)] = $message;
}
But I didn't try to add one.