#11 – Complaint System in CodeIgniter 4

The system for validating complaints is like a wild rollercoaster ride, with twists and turns at every step. You’ll need a keen eye for each unique validation, and a heart of steel to handle the 3000 character cap. But fear not, you can count on the General Helper to soften the landing when things go wrong, allowing for a smooth and user-friendly ride. So buckle up and enjoy the validation adventure! ūüéĘ


De certa nós já fizemos o percurso para a validação de do nosso obviamente que as regras de validação para cada das ser distingas por exemplo se nós regressarmos aqui o nós ter é seguinte no text area vai ser obrigatório o mesmo acontece com o select que aqui está vai apenas obrigatório não fazer nenhuma muito especial vamos regressar ao nosso e vamos colocar essa regra aqui aqui por baixo vou inclusive aproveitar aqui o estava validação do email.
Ok vou selecionar tudo e duplicar aqui que eu vou colocar √© area para nome n√£o √© necess√°rio o n√£o √© obrigat√≥rio ent√£o o area que √© Esta √°rea que aqui est√° vamos aqui select que est√° aqui alg vamos aqui este area que aqui est√° ūüĎá

Revis√£oDetalhes
Text AreaObrigatório
SelectApenas Obrigatório

ūüďĚ Label:Valida√ß√Ķes

  • Area para nome: Obrigat√≥rio
  • Select: Apenas obrigat√≥rio

Vou inclusive aproveitar aqui o estava validação do email. Ok vou selecionar tudo e duplicar aqui que eu vou colocar é area para nome não é necessário o não é obrigatório então o area que é Esta área que aqui está vamos aqui select que está aqui alg vamos aqui este area que aqui está ok então aqui pelo nome ele vai buscar o area tem que ser então eu aqui vou colocar área colocar aqui mesmo com letra é simplesmente o vou remover daqui
informa√ß√£o ou aquela valida√ß√£o e feito Ent√£o significa que eu agora tentar aqui submeter meu formul√°rio n√£o dados nenhuns no area aqui no e-mail vou colocar mas √© se remover daqui do area os valores que aqui est√£o repar posso faz√™-lo vamos aqui procurar as op√ß√Ķes todas vou remover aqui este este elemento todo que posso inclusive o elemento todo do delete Element se eu for em enviar repara que ele voltou outra aqui para e n√£o me permitiu a mensagem do ok ok ent√£o se colocar aqui clicar em enviar temos aqui o ok certo significa que n√≥s temos j√° estas duas valida√ß√Ķes vou por agora text area ent√£o o area que vou duplicar vai ter aqui este nome que √© ok que √© a o a minha area aqui no valid√°-lo de v√°rias formas ent√£o eu vou colocar aqui o complain o Label √© ver aqui o que √© que n√≥s aqui caso √© √°rea de texto.
Vou colocar assim a vamos deixar ficar aqui o e vamos ver é uma para dizer que temos que ter máximo x caracteres isso eu aconselho-te que a do codit que tiveres o link a documentação do Code vais poder aqui validation no validation quando Fazes a aqui uma área validation quando clicas lá no interior e já agora não quiseres ver área aqui removeres parte do validation.
Eu acho que daria para remover enfim n√£o interessa o √© que vai acontecer se roles ao tu vais ver que available rules regras Gerais e regras ficheiros se eu clicar aqui no available rules Tu verificar que existe tabela que cont√©m o tipo de √ß√£o que tu queres fazer se tem par√Ęmetros n√£o E tem aqui ou neste caso tem aqui uma descri√ß√£o por vezes tem inclusive at√© exemplo o que n√≥s vamos querer aqui elas organizadas ordem alfab√©tica n√≥s temos o Max o Max length um par√Ęmetro j√° ver o que √© que √© e neste caso ele se o de texto tiver mais do que par√Ęmetro que est√° definido que o que aqui o Max length 8 √© um exemplo vou pux√°-lo aqui para meu c√≥digo e vou dizer que para al√©m do required eu quero o Max length n√£o eu agora o length um bocadinho maior a minha mensagem tem no m√°ximo 3.000 caracteres ent√£o eu vou coloc√°-la aqui com 3.000 o que significa isto na pr√°tica que se eu escrever mais do que 3.000 caracteres eu vou um Ok se eu escrever menos n√£o vou Ent√£o agora eu vou aqui que para a valida√ß√£o do Max length repara que intelig√™ncia est√° √© que eu quero eu vou at√© completar aquilo que a de Intelig√™ncia Artificial fazer aqui que n√£o fez por completo que o length diz que campo Field que ser o campo reclama√ß√£o deve ter no m√°ximo 3000 caracteres colocou aqui 3000 caracteres eu defini o valor 3000 ali mas uma forma tamb√©m n√≥s podermos indicar aqui mensagem do erro o que √© que n√≥s quer quemos colocar aqui neste caso √© a express√£o o param vai a mesma forma Field √© substitu√≠do aqui pelo campo Label o param vai ser substitu√≠do este par√Ęmetro aqui isto significa na pr√°tica que se eu amanh√£ decidir que afinal s√≥ de basta alterar aqui o texto vai ser constru√≠do base no valor que eu colocar Ok a parte da definida os seus erros portanto.
Chegamos aqui a uma em que eu agora quiser aqui enviar eu estou sistematicamente a para trás porquê porque estamos a erros que ainda não estamos a apresentar bom como é que nós podemos fazê-lo eu voute mostrar que vêm apresentados vou aqui por baixo meu formulário colocar aqui uma condição do PHP.

ūüí° A valida√ß√£o do Max Length

  • Se o campo de texto tiver mais do que o par√Ęmetro que est√° definido (3000), um erro ser√° gerado.
  • A mensagem de erro √© din√Ęmica e depender√° do n√ļmero de caracteres definidos.

Então colocar aqui bloco se não vazio se empty uma variável chamada errors Isto se não estiver vazio os erros neste caso erros é muito específico porque chamamos aqui o validation Ok vamos ver quando nós aqui atrás temos o validation errors então isto vai eventualmente aqui então o que é que eu quero aqui fazer eu quero os erros de validação bom ele está a sugerir aqui uma implementação eu vou até aceitá-lo explicar o que está a fazer aqui um com uma caixa alerta com um vermelho com uma margem top de três E aqui fez uma lista unordered de list um que percorre todos os validation errors porque dos erros vai transformar numa erro e vai colocá-lo dentro da lista de então repara nada de extraordinário aqui vai.
Eu agora clicar √© um ele diz-me ok voc√™ tem aqui um bloco c√≥digo que problemas n√£o existir como √© foi a informa√ß√£o ou o coment√°rio eu tinha para me ajudar a escrever aqui √°rea esta informa√ß√£o que aqui est√° Eu vou remov√™-la ela j√° n√£o sentido existir ali aparentemente aqui um √© aqui o if eventualmente Se Tivesse ficar ali aquela do c√≥digo de do coment√°rio HTML tamb√©m n√£o existiria problema mas a de agora j√° estar√° em condi√ß√Ķes de vou refrescar repara se eu clicar agora em o que √© que acontecer o est√°-me a para aqui as informa√ß√Ķes mas n√£o me a apresentar aqui a listagem dos erros porqu√™ por simples quando n√≥s chegarmos Aqui temos aqui o data a buscar o validation errors mas n√£o est√° passar para o interior home vou ter que colocar aqui o o data vai passar para o interior minha View um de vari√°veis acabar por neste caso s√≥ este nome validation errors por isso √© eu a perguntar se aqui existe um validation errors e depois uma itera√ß√£o pelos erros se eu agora aqui refrescar clicar em enviar repara como agora j√° me aparece a dos que s√£o preenchimento entanto √© comum que erros de valida√ß√£o apare√ßam em eles de um Campos onde o erro valida√ß√£o est√° acontecer ent√£o neste Este texto que aqui que est√° deveria exemplo por do e-mail o texto que aqui est√° aparecer baixo do text a dizer que h√° aqui erro que voc√™ que compor.
Como é que isto uma que eu uso muita frequência é um helper com do igniter e posso chamar partir de qualquer localização meu código eu vou-te mostrar com um exemplo muito prático eu vou remover daqui toda esta lógica já não quero que ela seja porque vou criar uma vai permitir apresentar próximo de cada um dos Campos onde erros de validação os erros de validação.

ūüďĚ Bloco de PHP na View

  • Cria√ß√£o de uma condicional em PHP para exibir erros de valida√ß√Ķes de forma din√Ęmica.

ūüí° Helper do CodeIgniter

  • Exemplo pr√°tico aplicando aux√≠lio na apresenta√ß√£o dos erros de valida√ß√£o.

About the Author

Jo√£o Ribeiro
45.5K subscribers

About the ChannelÔľö

Videotutores em português sobre os mais variados assuntos relacionados com o mundo da Informática.
Share the Post:
en_GBEN_GB