Ir para o conteúdo principal

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)
]);