/ / Custom encontrar lista no CakePHP - php, cakephp

Lista de localização personalizada no CakePHP - php, cakephp

Eu preciso de uma lista de funcionários, mas, a informação da idade também (coluna), em outras palavras:

<option value="id" data-age="age">Name</option>

Como posso fazer isso no CakePHP? Apenas com um foreach? Por exemplo:

foreach ($employees as $emp) { ?>
<option
value="<?php echo $emp["Employee"]["id"] ?>"
data-age="<?php echo $emp["Employee"]["age"] ?>">
<?php echo $emp["Employee"]["name"] ?>
</option>
<?php } ?>

E como posso fazer isso mantendo o name/id gerar pelo CakePHP?

Respostas:

6 para resposta № 1

Caso você esteja usando o Cake 2.x, então você pode deixar o FormHelper fazer isso para você, você só precisa formatar os dados de opções corretamente, e por corretamente eu quero dizer um array segurando matrizes com pelo menos name e value teclas para o option elemento texto e o id atributo, todas as entradas adicionais serão mapeadas como atributos em que a chave é usada como o nome do atributo e o valor como o valor do atributo.

https://github.com/cakephp/cakephp/blob/2.0.2/lib/Cake/View/Helper/FormHelper.php#L2325

Aqui está um exemplo não testado. Os dados das opções devem ficar assim:

$options = array
(
array
(
"name" => "employee-a",
"value" => 1,
"data-age" => 20,
),
array
(
"name" => "employee-b",
"value" => 2,
"data-age" => 30,
),
array
(
"name" => "employee-c",
"value" => 3,
"data-age" => 40,
),
);

E, em seguida, basta passá-lo para o auxiliar de formulário que cria um select elemento:

echo $this->Form->input("employee_id", array("type" => "select", "options" => $options));

Isso deve gerar o seguinte HTML:

<select id="ModelEmployeeId" name="data[Model][employee_id]">
<option value="1" data-age="20">employee-a</option>
<option value="2" data-age="30">employee-b</option>
<option value="3" data-age="40">employee-c</option>
</select>