/ / Zend Form Element Select - як повернути ціле число? - php, форми, zend-framework2

Елемент форми Zend Element - як повернути ціле число? - php, forms, zend-framework2

Чи є спосіб налаштуванняZendFormElementSelect, щоб повернути ціле число? Якщо у мене є форма з елементом Select приблизно таким чином (це загальний спосіб налаштувати елемент Select відповідно до документації та мого дослідження в Інтернеті):

$this->add(array(
"name" => "category_id",
"type" => "ZendFormElementSelect",
"options" => array(
"label" => "Category",
"value_options" => array(
"1" => "Gold",
"2" => "Silver",
"3" => "Diamond",
"4" => "Charm"
),
"attributes" => array(
"class" => "form-control",
),
));

Я думав, якщо я зміню параметр значення таким чином:

$this->add(array(
"name" => "category_id",
"type" => "ZendFormElementSelect",
"options" => array(
"label" => "Category",
"value_options" => array(
1 => "Gold",
2 => "Silver",
3 => "Diamond",
4 => "Charm"
),
"attributes" => array(
"class" => "form-control",
),
));

ціле число буде повернуто, але я помилився. В обох випадках рядок повертається. Мій php-код записує ці значення форми в таблицю db, де category_id визначається як int.

Відповіді:

1 для відповіді № 1

У ZF2 використовуйте ZendFilterInt або ZendFilterToInt залежно від того, яку версію ZF2 ви використовуєте, ZendFilterInt застарів у ZF2.4.

У вашій формі, припускаючи, що ви використовуєте ZendInputFilterInputFilterProviderInterface використання:

public function getInputFilterSpecification()
{
return array(
"category_id" => array(
"required" => TRUE,
"filters" => array(
array("name" => "Int"),
),
"validators" => array(
// Your validators here
),
),
);
}