Разложить правило валидации в класс, реализующий Illuminate\Contracts\Validation\Rule
контракт.(См. Раздел «Использование объектов правил» 1 .)
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class CustomValidation implements Rule
{
public function passes($attribute, $value)
{
// validation logic
}
public function message()
{
return 'validation error';
}
}
Затем запрос расширения пользовательской формы может быть расширен Illuminate\Foundation\Http\FormRequest
2
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use App\Rules\CustomValidation;
class CustomFormRequest extends FormRequest
{
public function rules()
{
return [
// include rules for other fields
'custom' => new CustomValidation,
];
}
}
Проверка выполнения в соответствующем контроллере с использованием правил, объявленных в пользовательском запросе формы, с указанием типа, указывающего на запрос метода контроллера
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class CustomActionController extends Controller
{
protected function create(CustomFormRequest $request)
{
}
}