мой список выбора показывает идентификаторы, а не значения, CakeStack Overflow

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

таблица «категории» имеет только два столбца (идентификатор, имя)

часть представления:

echo $this->Form->input('category',array(
'type' => 'select',
'options' => $categories,
'empty' => 'select category'
));

Ассоциация :

class Job extends AppModel{
public $name = 'Job';
public $belongsTo = array('Category');
}

и контроллер:

$categories= $this->Job->Category->find('list');
$this->set('categories',$categories);

Результатом является список выбора с 1,2,3,4,5,6 значениями

0

Решение

Вам необходимо отредактировать код вашего контроллера следующим образом:

$categories= $this->Job->Category->find('list',array('fields'=>array('Category.id','Category.name')));
1

Другие решения

вам нужно использовать виртуальное поле в CakePHP.

http://book.cakephp.org/2.0/en/models/virtual-fields.html

также Line main в файле ctp

foreach($times as $key => $value ){ $timesList[$value] = $value; } $times = $timesList

использовать согласно вашей модели-контроллера. для более подробной информации. Пожалуйста, перейдите по этой ссылке. Здесь я сталкиваюсь с той же проблемой, и я получил решение.

Виртуальные поля не работают в CakePHP

0

В CakePHP 3.X

// Common Usage:
$users = [
['id' => 1, 'name' => 'mark'],
['id' => 2, 'name' => 'jane'],
['id' => 3, 'name' => 'sally'],
['id' => 4, 'name' => 'jose'],
];
$results = Hash::extract($users, '{n}.id');
// $results equals:
// [1,2,3,4];

https://book.cakephp.org/3.0/en/core-libraries/hash.html

0
По вопросам рекламы [email protected]