Чи є спосіб налаштування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
),
),
);
}