Closed moreiraandre closed 5 years ago
run
.kebab-case
.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.
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á.
Não! Basta saber qual propriedade (atributo ou meta-dado) do plugin irá receber o valor associado.
???
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.
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.
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.
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.
Qualquer plugin pode receber dados em massa para seus elementos filhos!
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';
public function getHtml(?array $data = null): string
{
$data = [ 'attributes' => $this->getAttributesTag()];
// PARA:
$data = [ 'attrTag' => $this->getAttributesTag()];
}
Incluir função __construct(), nas classes de telas para receber dados. ~Incluir pacote laravel/collective, para ajudar a gerir os formulários.~