2016-06-21 3 views
0

Допустим, у меня в контроллере:Как вы создаете форму выбора значения решений такой же, как вариант текста из массива дб

$this->set('locations', $this->Location->find('list', array('fields' => array('state')))); 

Как получить мой взгляд, чтобы сгенерировать форму выбора с параметрами:

<select name="data[Location][state]" class="inputbox" id="Location"> 
<option value="Arizona">Arizona</option> 
<option value="California">California</option> 
<option value="Hawaii">Hawaii</option> 
</select> 

Потому что генерируя:

<select name="data[Location][state]" class="inputbox" id="Location"> 
    <option value="1">Arizona</option> 
    <option value="2">California</option> 
    <option value="3">Hawaii</option> 
    </select> 

Я м известно, что CakePHP использует первичный ключ по умолчанию для значений и есть отвеченный вопрос, но решение не работает для меня: how do you create a select with both value and the label the same from an array in cakephp?

На мой взгляд, у меня есть:

<?php echo $form->select('Location.state', $locations); ?> 

Моя база данных: locations
ID | государственные учреждения
1 | Аризона
2 | Калифорния
3 | Гавайи
и так далее

ответ

0

хорошо, решение было довольно просто ... в моем контроллере массив полей необходимо значение и текст, указанный:

$this->set('locations', $this->Location->find('list', array('fields' => array('state','state')))); 
0

При вызове списка можно настроить поля, используемые для ключа и значения с параметрами KEYFIELD и valueField соответственно:

http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#finding-key-value-pairs

$locations = $this->Location->find('list', ['keyField' => 'state', 'valueField' => 'state']); 

$this->set('locations', $locations); 
+0

он использует торт 1.3 – arilia

0
$this->set('locations', $this->Location->find('list', array('fields' => array('state','state')))); 
+0

Хотя этот фрагмент кода может решить вопрос, [включая пояснение] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! –

Смежные вопросы