# Mad.Builder ## Docs - [01. Transações em banco de dados](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c01-transacoes-em-banco-de-dados.md) - [02. Carregamento de objetos](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c02-carregamento-de-objetos.md) - [03. Gravação e atualização de objetos](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c03-gravacao-e-atualizacao-de-objetos.md) - [04. Métodos gancho de objetos](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c04-metodos-gancho-de-objetos.md) - [05. Exclusão de objetos](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c05-exclusao-de-objetos.md) - [06. Manipulação de coleções](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c06-manipulacao-de-colecoes.md) - [07. Carregamento de coleções](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c07-carregamento-de-colecoes.md) - [08. Carregamento estático de coleções](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c08-carregamento-estatico-de-colecoes.md) - [09. Carregamento de coleções com API de critérios](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c09-carregamento-de-colecoes-com-api-de-criterios.md) - [10. Atualização de coleções em lote](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c10-atualizacao-de-colecoes-em-lote.md) - [11. Atualização de coleções individuais](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c11-atualizacao-de-colecoes-individuais.md) - [12. Como depurar filtros](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c12-como-depurar-filtros.md) - [13. Exclusão de coleções](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c13-exclusao-de-colecoes.md) - [14. Como contar os registros de uma coleção](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c14-como-contar-os-registros-de-uma-colecao.md) - [15. Como carregar um vetor indexado pelos atributos de uma tabela](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c15-como-carregar-um-vetor-indexado-pelos-atributos-de-uma-tabela.md) - [16. Filtros globais através de escopos globais utilizando o booted](https://docs-fw.madbuilder.com.br/api-banco-de-dados/c16-filtro-global.md) - [TDBMultiSearch](https://docs-fw.madbuilder.com.br/busca-de-dados/tdbmultisearch.md): O `TDBMultiSearch` é um componente de busca de múltipla seleção vinculado a uma fonte de dados de banco de dados. Este componente permite que o usuário realize uma busca e selecione múltiplos itens de uma lista que é dinamicamente carregada do banco de dados. - [TDBUniqueSearch](https://docs-fw.madbuilder.com.br/busca-de-dados/tdbuniquesearch.md): O `TDBUniqueSearch` é um componente que permite a busca única em uma base de dados. - [TMultiSearch](https://docs-fw.madbuilder.com.br/busca-de-dados/tmultisearch.md): O `TMultiSearch` é um componente de seleção múltipla que permite ao usuário escolher vários itens de uma lista pré-definida. Este componente é particularmente útil para situações onde o usuário precisa selecionar mais de uma opção dentro de um conjunto de itens. - [TUniqueSearch](https://docs-fw.madbuilder.com.br/busca-de-dados/tuniquesearch.md): O `TUniqueSearch` é um componente de busca única, ideal para situações onde uma única seleção é permitida a partir de uma lista de opções. - [BDateRange](https://docs-fw.madbuilder.com.br/entrada-de-dados/bdaterange.md): O `BDateRange` é um componente para seleção de intervalos de datas (derivado da classe `TField`), permitindo ao usuário escolher um período de tempo de forma fácil e interativa. - [TBarCodeInputReader](https://docs-fw.madbuilder.com.br/entrada-de-dados/tbarcodeinputreader.md): O `TBarCodeInputReader` é um componente de entrada de dados para leitura de códigos de barras. - [TColor](https://docs-fw.madbuilder.com.br/entrada-de-dados/tcolor.md): O `TColor` é um componente para seleção de cores. - [TDate](https://docs-fw.madbuilder.com.br/entrada-de-dados/tdate.md): O `TDate` é um componente para seleção de datas, oferecendo funcionalidades como máscaras de data e ação ao alterar a data. - [TDateTime](https://docs-fw.madbuilder.com.br/entrada-de-dados/tdatetime.md): O `TDateTime` é um componente de seleção de data e hora. Ele estende a classe `TEntry`. - [TEntry](https://docs-fw.madbuilder.com.br/entrada-de-dados/tentry.md): O `TEntry` é um componente de entrada de dados simples (derivado da classe `TField`), ou seja, serve para o usuário informar algum texto, como por exemplo, o nome de um produto. - [THidden](https://docs-fw.madbuilder.com.br/entrada-de-dados/thidden.md): O `THidden` é um campo oculto (derivado da classe `TField`), ou seja, é um campo que não é visível para o usuário, mas cujo valor pode ser enviado em um formulário. - [THtmlEditor](https://docs-fw.madbuilder.com.br/entrada-de-dados/thtmleditor.md): O `THtmlEditor` é um componente de edição de texto rico (derivado da classe `TField`), que facilita a entrada de conteúdo HTML pelo usuário. - [TIcon](https://docs-fw.madbuilder.com.br/entrada-de-dados/ticon.md): O `TIcon` é um componente de entrada que permite o uso de ícones. - [TNumeric](https://docs-fw.madbuilder.com.br/entrada-de-dados/tnumeric.md): O `TNumeric` é um componente de entrada de dados numéricos, que permite a inserção de valores numéricos formatados de acordo com a máscara numérica definida. - [TPassword](https://docs-fw.madbuilder.com.br/entrada-de-dados/tpassword.md): O `TPassword` é um componente de entrada de dados (derivado da classe `TField`), que permite ao usuário inserir senhas de forma segura. - [TQRCodeInputReader](https://docs-fw.madbuilder.com.br/entrada-de-dados/tqrcodeinputreader.md): O `TQRCodeInputReader` é um componente de entrada projetado para leitura de QR Code. Ele dispõe de funcionalidades específicas para lidar com QR Codes. - [TSlider](https://docs-fw.madbuilder.com.br/entrada-de-dados/tslider.md): O `TSlider` é um componente que permite ao usuário selecionar um valor dentro de um intervalo deslizante (derivado da classe `TField`). - [TSpinner](https://docs-fw.madbuilder.com.br/entrada-de-dados/tspinner.md): O `TSpinner` é um widget conhecido como botão de rotação que permite ao usuário aumentar ou diminuir valores numéricos de forma incremental (derivado da classe `TField`). - [TText](https://docs-fw.madbuilder.com.br/entrada-de-dados/ttext.md): O `TText` é um componente de widget de texto (derivado da classe `TField`). - [TTime](https://docs-fw.madbuilder.com.br/entrada-de-dados/ttime.md): O `TTime` é um componente de escolha de tempo, possibilitando a inserção e manipulação de horários através de uma interface amigável que integra funcionalidades de um time picker. - [BContainer](https://docs-fw.madbuilder.com.br/interface/bcontainer.md): O `BContainer` é um componente que serve para encapsular outros componentes dentro de um container com opções de personalização do título, borda e capacidade de expansão (derivado da classe `BootstrapFormBuilder`). - [BElement](https://docs-fw.madbuilder.com.br/interface/belement.md): O `BElement` é um componente base para elementos HTML personalizados com algumas funcionalidades adcionais (derivado da classe `TElement`). - [BHelper](https://docs-fw.madbuilder.com.br/interface/bhelper.md): O `BHelper` é um componente utilizado para exibir informações adicionais ou ações em um ícone, geralmente na forma de um popover. (derivado da classe `TElement`). - [BPageContainer](https://docs-fw.madbuilder.com.br/interface/bpagecontainer.md): O `BPageContainer` é um componente que encapsula outros elementos HTML, permitindo manipular sua visibilidade, tamanho e ações associadas (derivado da classe `TElement`). - [TAlert](https://docs-fw.madbuilder.com.br/interface/talert.md): `TAlert` é um componente para exibição de alertas no sistema, como mensagens de sucesso, informação, aviso ou perigo (derivado da classe `TElement`). - [TButton](https://docs-fw.madbuilder.com.br/interface/tbutton.md): O `TButton` é um componente que cria botões com ícones e ações associadas (derivado da classe `TField`). Ele é utilizado para realizar ações quando clicado, podendo conter tanto texto quanto ícones. - [TFormSeparator](https://docs-fw.madbuilder.com.br/interface/tformseparator.md): O `TFormSeparator` é um componente utilizado para inserir um separador visual em formulários, geralmente utilizado para dividir seções de um formulário (derivado da classe `TElement`). - [TImage](https://docs-fw.madbuilder.com.br/interface/timage.md): O `TImage` é um componente utilizado para a exibição de imagens ou ícones na interface de usuário (derivado da classe `TElement`). - [TLabel](https://docs-fw.madbuilder.com.br/interface/tlabel.md): O `TLabel` é um componente para exibição de texto, como por exemplo, um rótulo para outros campos em um formulário (derivado da classe `TField`). - [TPageStep](https://docs-fw.madbuilder.com.br/interface/tpagestep.md): O `TPageStep` é um componente que representa passos em uma página, útil para guiar o usuário através de uma sequência de etapas ou tarefas (derivado da classe `TElement`). - [TPillBar](https://docs-fw.madbuilder.com.br/interface/tpillbar.md): O `TPillBar` é um componente que gera uma barra de navegação em forma de pílulas, permitindo que os usuários interajam com diferentes seções de uma aplicação (derivado da classe `TElement`). - [5. Configurando o API Controller](https://docs-fw.madbuilder.com.br/rest-api/configurando-controller.md): É importante conhecer algumas propriedades fundamentais do ApiResourceController que você pode ajustar para controlar o comportamento básico do seu endpoint. A primeira parte desse guia irá abordar propriedades fundamentais e outras relacionadas à visualização de dados — em outras palavras, requisiç… - [3. Criando um Endpoint CRUD](https://docs-fw.madbuilder.com.br/rest-api/crud-endpoint.md): Este guia mostra o passo a passo para criar um endpoint de API completo com todas as operações básicas: Listar, Visualizar, Criar, Atualizar e Deletar (CRUD). - [6. Trabalhando com Mestre-Detalhe](https://docs-fw.madbuilder.com.br/rest-api/mestre-detalhe.md): O ApiResourceController simplifica operações de mestre-detalhe, permitindo gerenciar um registro principal (o mestre) e seus registros relacionados (os detalhes) em uma única requisição. O caso de uso mais comum é um **Pedido de Venda** (mestre) e seus **Itens** (detalhes). Este capítulo mostra como… - [7. Middlewares e Autenticação](https://docs-fw.madbuilder.com.br/rest-api/middleware-e-autenticacao.md): Os middlewares são uma camada de segurança essencial em APIs, permitindo interceptar e validar requisições antes que elas cheguem aos controllers. Este guia explica como usar os middlewares disponíveis e como criar os seus próprios. Um middleware funciona como um "porteiro": ele verifica se a requis… - [2. Obtendo Parâmetros da URL](https://docs-fw.madbuilder.com.br/rest-api/parametros.md): Este guia mostra como capturar e trabalhar com parâmetros enviados pela URL em seus controllers (ou services), seja através de parâmetros na rota ou através do objeto Request. Quando criamos rotas personalizadas (como vimos no capítulo anterior), frequentemente precisamos obter dados enviados pelo c… - [1. Criando Rotas](https://docs-fw.madbuilder.com.br/rest-api/rotas.md): Este guia mostra o passo a passo para criar rotas de API em um sistema MadBuilder. As rotas são o ponto de entrada da nossa API. Elas definem os endereços (endpoints) que serão usados para se comunicar com nossa aplicação. Todas as rotas da API ficam no arquivo app/routes/api.php. - [4. Tipos de Retorno e Estruturação de Respostas](https://docs-fw.madbuilder.com.br/rest-api/tipos-de-retorno.md): Nos exemplos anteriores, utilizamos `(new Response())->json()` para retornar dados. O framework Mad Rest oferece duas opções principais de resposta: - [BDBRecursiveTreeView](https://docs-fw.madbuilder.com.br/selecao-de-dados/bdbrecursivetreeview.md): O `BDBRecursiveTreeView` é um componente (derivado da classe `BTreeView`) usado para criar uma visualização de árvore com dados carregados de forma recursiva a partir de um banco de dados. - [BDBSelectCheck](https://docs-fw.madbuilder.com.br/selecao-de-dados/bdbselectcheck.md): O `BDBSelectCheck` é um componente (derivado da classe `BSelectCheck`) para seleção de múltiplas opções baseado em um modelo de dados. - [BDBTreeView](https://docs-fw.madbuilder.com.br/selecao-de-dados/bdbtreeview.md): O `BDBTreeView` é um componente (derivado da classe `BTreeView`) especializado em construir uma árvore de visualização baseada em dados provenientes de um banco de dados. - [TArrowStep](https://docs-fw.madbuilder.com.br/selecao-de-dados/tarrowstep.md): O `TArrowStep` é um componente para criação de passos de progresso visualizados como setas (derivado da classe `TField`), permitindo a representação de etapas em um processo. - [TCheckButton](https://docs-fw.madbuilder.com.br/selecao-de-dados/tcheckbutton.md): O `TCheckButton` é um componente que representa um botão de marcação (checkbox) (derivado da classe `TField`), podendo ser exibido como um switch. Este componente é útil para capturar escolhas do usuário em formulários. - [TCheckGroup](https://docs-fw.madbuilder.com.br/selecao-de-dados/tcheckgroup.md): O `TCheckGroup` é um componente que agrupa vários botões de seleção (CheckButtons) (derivado da classe `TField`), permitindo que o usuário selecione múltiplas opções de uma lista. - [TCombo](https://docs-fw.madbuilder.com.br/selecao-de-dados/tcombo.md): O `TCombo` é um componente que cria uma caixa de seleção (derivado da classe `TField`), permitindo que o usuário escolha uma opção de uma lista suspensa. - [TDBArrowStep](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbarrowstep.md): O `TDBArrowStep` é um componente que estende a classe `TArrowStep` e permite a criação de etapas em forma de setas que são carregadas a partir de uma base de dados. - [TDBCheckGroup](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbcheckgroup.md): O `TDBCheckGroup` é um componente que estende o `TCheckGroup` para gerar grupos de caixas de seleção vinculados a fontes de dados do banco de dados. - [TDBCheckList](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbchecklist.md): O `TDBCheckList` é um componente que permite criar uma lista de seleção múltipla (checklist) alimentada por dados de um banco de dados (derivado da classe `TCheckList`). Este componente é útil para exibir e selecionar múltiplos itens que são armazenados em uma tabela de banco de dados. - [TDBCombo](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbcombo.md): O `TDBCombo` é um componente de seleção que carrega opções do banco de dados. - [TDBEntry](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbentry.md): O `TDBEntry` é um componente de entrada de dados que interage com bases de dados, permitindo a entrada de dados com autocompletar baseado em valores de uma tabela específica. - [TDBRadioGroup](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbradiogroup.md): O `TDBRadioGroup` é um componente que cria um grupo de botões de rádio vinculados a fontes de dados do banco de dados. Este componente permite que você apresente opções definidas em uma tabela de banco de dados como botões de rádio em uma interface de usuário. - [TDBSeekButton](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbseekbutton.md): O `TDBSeekButton` é um componente que cria um campo de busca para valores de entidades associadas, baseando-se em Active Records. - [TDBSelect](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbselect.md): O `TDBSelect` é um componente de seleção de dados de banco de dados. Permite a seleção de dados diretamente de uma tabela do banco de dados, baseando-se em critérios e ordenação específicos. - [TDBSortList](https://docs-fw.madbuilder.com.br/selecao-de-dados/tdbsortlist.md): O `TDBSortList` é um widget de lista de ordenação que permite a seleção e ordenação de dados diretamente de uma base de dados. - [TMultiEntry](https://docs-fw.madbuilder.com.br/selecao-de-dados/tmultientry.md): O `TMultiEntry` é um widget de entrada múltipla, permitindo seleções múltiplas em uma caixa combinada que pode ser configurada para limitar o número de itens selecionáveis. - [TRadioGroup](https://docs-fw.madbuilder.com.br/selecao-de-dados/tradiogroup.md): O `TRadioGroup` é um componente que agrupa múltiplos RadioButtons (derivado da classe `TField`), permitindo ao usuário selecionar uma das várias opções fornecidas. - [TSeekButton](https://docs-fw.madbuilder.com.br/selecao-de-dados/tseekbutton.md): O `TSeekButton` é um widget que cria um campo de busca com um botão auxiliar para procurar valores de entidades associadas. - [TSelect](https://docs-fw.madbuilder.com.br/selecao-de-dados/tselect.md): O `TSelect` é um componente de seleção (derivado da classe `TField`), permitindo ao usuário escolher uma ou mais opções de uma lista. Este componente é útil para formulários onde uma seleção é necessária dentre um conjunto de opções pré-definidas. - [TSortList](https://docs-fw.madbuilder.com.br/selecao-de-dados/tsortlist.md): O `TSortList` é um componente que cria uma lista ordenável (derivado da classe `TField`). Ele permite ao usuário organizar os elementos dentro de uma lista, que pode ser horizontal ou vertical. Este componente é especialmente útil para interfaces onde a ordem dos elementos é importante, como priorid… - [BuilderHttpClientService](https://docs-fw.madbuilder.com.br/services/builderhttpclientservice.md): O `BuilderHttpClientService` é uma classe PHP que fornece uma interface simples e poderosa para fazer requisições HTTP. Ela é especialmente útil para integrações com APIs REST, oferecendo suporte para diferentes métodos HTTP, autenticação, cabeçalhos personalizados e manipulação de respostas JSON. - [BSignatureDrawCapture](https://docs-fw.madbuilder.com.br/upload-de-arquivos/bsignaturedrawcapture.md): O `BSignatureDrawCapture` é um componente de captura de assinatura, também conhecido como Memo (derivado da classe `TField`). Esse widget permite aos usuários desenhar sua assinatura em uma área definida, que pode ser usada em formulários para coletar assinaturas digitais. - [TFile](https://docs-fw.madbuilder.com.br/upload-de-arquivos/tfile.md): O `TFile` é um componente de escolha de arquivos (derivado da classe `TField`), permitindo que o usuário faça upload de arquivos para o servidor. - [TImageCapture](https://docs-fw.madbuilder.com.br/upload-de-arquivos/timagecapture.md): O `TImageCapture` é um componente para captura de imagens, permitindo que o usuário tire uma foto usando uma webcam. - [TImageCropper](https://docs-fw.madbuilder.com.br/upload-de-arquivos/timagecropper.md): O `TImageCropper` é um componente para carregar e cortar imagens (derivado da classe `TField`). Ele permite ajustes finos e manipulações, como zoom, rotação e escala. - [TMultiFile](https://docs-fw.madbuilder.com.br/upload-de-arquivos/tmultifile.md): O `TMultiFile` é um componente para seleção de múltiplos arquivos (derivado da classe `TField`), permitindo upload, visualização e manipulação de arquivos múltiplos de uma vez.