如何以 ZF2 形式设置动态值选项


How to set dynamically valueOptions in ZF2 form

我正在尝试在我的表单中动态设置标题的值。我的标题字段代码:

 $title->setValueOptions(array(
        "mr" => $trans->get("Reservation_passenger_type_mr"),
        "mrs" => $trans->get("Reservation_passenger_type_mrs"),
        "chld" => $trans->get("Reservation_passenger_type_child"),
    ));

然后我使用以下代码显示它x次,具体取决于由成人和儿童组成的乘客数量

$collection = new Collection('persons');        
$collection->setCount($this->numberOfPassengers); 
$this->add($collection);

如果乘客的数量包括一些孩子,我想先显示 chld 标题作为默认值:

$title->setValueOptions(array(
    "chld" => $trans->get("Reservation_passenger_type_child"),
    "mr" => $trans->get("Reservation_passenger_type_mr"),
    "mrs" => $trans->get("Reservation_passenger_type_mrs"),        
));

知道如何在代码中完成吗?

您不必更改值选项的顺序,只需按如下方式设置字段的选定值:

if (/* collection includes some children */) {
    $title->setValue('chld');
}