Formulário de cadastro
Para gerar o formulário de cadastro na plataforma Badiu.Net, é necessário configurar três arquivos principais: config.yml, service.yml e router.yml.
Utilizaremos como exemplo a chave badiu.system.access.role. Essa chave representa a funcionalidade role, pertencente ao módulo access e à categoria de módulo system. Todas as instruções a seguir se baseiam nesta chave, mas a mesma lógica pode ser aplicada a qualquer outra funcionalidade.
1. Configuração do arquivo config.yml
badiu.system.access.role.data.form.config: defaultdataonpenform=enablerestrictparentkey/0
badiu.system.access.role.data.form.fields.available: name,shortname,description,timecreated,timemodified,deleted,idnumber,description,param
badiu.system.access.role.data.form.fields.enable: general=name,shortname,description&otherconf=enablerestrictparentkey,defaultroute,idnumber,param
badiu.system.access.role.data.form.fields.required: name=1
badiu.system.access.role.data.form.fields.cssclass:
badiu.system.access.role.data.form.fields.type: description=textarea¶m=textarea&enablerestrictparentkey=choice
badiu.system.access.role.data.form.fields.choicelist: enablerestrictparentkey=defaultboolean
badiu.system.access.role.data.form.fields.label: name=badiu.system.access.role.name&defaultroute=badiu.system.access.defaultroute&enablerestrictparentkey=badiu.system.access.role.enablerestrictparentkey
badiu.system.access.role.data.form.fields.placeholder: defaultroute=badiu.system.access.defaultroute.placeholder
Essas variáveis geram automaticamente o formulário. A seguir, explicamos cada uma delas sem a chave da funcionalidade, pois esta varia conforme a funcionalidade.
| Variável | Descrição |
|---|---|
data.form.config |
Configuração geral do formulário, como valores padrão de campos. |
data.form.fields.available |
Lista de todos os campos disponíveis. |
data.form.fields.enable |
Lista de campos ativados no formulário. |
data.form.fields.required |
Define quais campos são obrigatórios. |
data.form.fields.cssclass |
Define a classe CSS para cada campo. |
data.form.fields.type |
Define o tipo de campo (ex: choice, textarea, badiuautocomplete etc.). |
data.form.fields.choicelist |
Define a lista de opções para campos com escolhas. |
data.form.fields.label |
Define os rótulos (labels) dos campos. |
data.form.fields.placeholder |
Define os placeholders dos campos. |
2. Configuração do arquivo routing.yml
badiu.system.access.role.index:
path: /system/access/role/index
controller: Badiu\System\CoreBundle\Controller\Functionality\BadiuController::index
badiu.system.access.role.add:
path: /system/access/role/add
controller: Badiu\System\CoreBundle\Controller\Functionality\BadiuController::addservice
badiu.system.access.role.edit:
path: /system/access/role/edit/{id}
controller: Badiu\System\CoreBundle\Controller\Functionality\BadiuController::addservice
badiu.system.access.role.copy:
path: /system/access/role/copy/{id}
controller: Badiu\System\CoreBundle\Controller\Functionality\BadiuController::addservice
| Rota | Finalidade |
|---|---|
| index | Exibe a tela com a lista de registros. Possui opções para editar, clonar e excluir. Exige configuração adicional nos arquivos config.yml e service.yml para gerar relatórios (fora do escopo deste tutorial). |
| add | Responsável pelo cadastro de um novo registro. |
| edit | Carrega os dados de um registro existente para edição. A interface de edição está vinculada à tela do relatório (index). |
| copy | Permite clonar um registro e redireciona para o formulário de cadastro para salvar como novo. |
3. Configuração do arquivo services.yml
badiu.system.access.role.entity:
class: Badiu\System\AccessBundle\Entity\SystemAccessRole
shared: false
public: true
arguments: []
badiu.system.access.role.data:
class: Badiu\System\CoreBundle\Model\Functionality\BadiuDataBase
shared: false
public: true
arguments: ['@service_container', 'BadiuSystemAccessBundle:SystemAccessRole']
badiu.system.access.role.report:
class: Badiu\System\CoreBundle\Model\Functionality\BadiuReport
shared: false
public: true
arguments: ['@service_container', 'badiu.system.access.role']
| Serviço | Responsabilidade |
|---|---|
| entity | Classe de mapeamento ORM do banco de dados. |
| data | Serviço responsável pela manipulação dos dados da funcionalidade. |
| report | Serviço para geração de relatórios. |
Conclusão
A chave da funcionalidade é a base de todas as configurações. Ao criar uma nova funcionalidade em um módulo, você deve definir essa chave. A partir dela, você estrutura os arquivos yml, seguindo sempre a mesma lógica — o que muda é apenas a chave.