Configuração no Controller
No método create ou edit, gere a estrutura JSON e envie para a view:
public function create()
{
$togglePageTypeStructure = ContentPageTypeEnum::buildJsonStructure();
return view(module()->view('form'), [
'togglePageTypeStructure' => $togglePageTypeStructure,
]);
}
Na hora de validar o request (store ou update), passe a instância do Enum no método de validação:
public function update(Request $request, ContentPage $contentPage)
{
$this->validateRequest($request, ContentPageTypeEnum::tryFrom($request->type));
}
Também é possível passar um array de Enums, caso o comportamento envolva mais de um campo controlador:
$this->validateRequest($request, [
ContentPageTypeEnum::tryFrom($request->type),
AnotherToggleEnum::tryFrom($request->other_type)
]);