moreiraandre / lara-html-old

Pacote Laravel para gerar marcação HTML com abstração do sistema de grids responsivo.
MIT License
0 stars 0 forks source link

Receber dados #7

Closed moreiraandre closed 5 years ago

moreiraandre commented 5 years ago

Incluir função __construct(), nas classes de telas para receber dados. ~Incluir pacote laravel/collective, para ajudar a gerir os formulários.~

moreiraandre commented 5 years ago
moreiraandre commented 5 years ago
moreiraandre commented 5 years ago
moreiraandre commented 5 years ago
moreiraandre commented 5 years ago
moreiraandre commented 5 years ago

O que significa "atribuir dados"?

Este conceito/operação é mais utilizado para definir valores nos campos de formulários, esses valores geralmente vêm do banco de dados, mas podem ser definidos manualmente em cada campo, ou pode ser um valor da requisição antiga, quando algum campo não foi validado e o usuário é redirecionado para a tela anterior sem perder os dados já informados.

O que significa "atribuir dados em massa"?

Quando uma estrutura associativa (array, objeto etc) constitui a forma chave/valor, onde chave é o nome do atributo e valor é o valor que o atributo receberá.

Somente elementos de formulário podem receber dados em massa?

Não! Basta saber qual propriedade (atributo ou meta-dado) do plugin irá receber o valor associado.

Como atribuir dados em massa?

???

moreiraandre commented 5 years ago

Como atribuir dados em massa?

Os dados em massa só podem ser atribuídos a um grupo de elementos.

O que define um grupo de elementos?

Um container de plugins! Ou seja, os dados em massa devem ser atribuídos a um plugin que abrigue outros.

moreiraandre commented 5 years ago

Qual a lógica para atribuir dados em massa?

A lógica mais utilizada é a de atribuir dados a elementos de um formulário da seguinte forma: um vetor['chave'=>'valor'] é definido, onde chave é o valor do atributo name do elemento do form e valor é o valor do atributo value.

O que é necessário para generalizar a lógica?

  1. Definir o atributo localizador do elemento através de seu valor;
  2. Definir atributo que terá seu valor atribuído após elemento ter sido encontrado na regra anterior.

Exemplo: $configMassaDeDados['atributo_filtro' => 'atributo_recebe_valor'];

Deve ser um vetor onde a chave é o atributo do elemento e o valor da chave é o valor do atributo.

Em qual método?

O método getHtmlElements() que é onde será renderizado o HTML dos elementos filhos. O mesmo deve receber os Dados em Massa do elemento pai, para que a pesquisa seja feita e o valor devido seja atribuido.

moreiraandre commented 5 years ago

Qualquer plugin pode receber dados em massa para seus elementos filhos!

moreiraandre commented 5 years ago

Dados em Massa X Atribuir valor

Só compensa utilizar a atribuição de massa de dados quando existe mais de um elemento com os mesmos nomes de atributos para localizar o elemento e receber o valor, caso contrário é melhor utilizar a atribuição simples de valor: $elemento->attrAtributo('valor'); $elemento->attrAtributo = 'valor';

moreiraandre commented 5 years ago

Melhorar código

public function getHtml(?array $data = null): string
{
    $data = [ 'attributes' => $this->getAttributesTag()];
    // PARA:
    $data = [ 'attrTag' => $this->getAttributesTag()];
}