0

我想setValue根据GET要求进入 Form 课程。要在表单中设置值,我会这样做:

class BookingForm extends Form
{
     $this->add(array(
        'name' => 'end',
        'type' => 'Text',
        'options' => array(
            'label' => 'Date to',
        ),
        'attributes' => array(
            'value' => '2013-09-18 15:45',
        ),
    ));
}

但它是硬编码的,我想避免这种情况,有方法$this->getRequest()->get('var to be extracted from url')吗?

4

2 回答 2

0

如果您已配置路由器,则可以使用:

// router
'index' => array(
  'type' => 'Segment',
  'options' => array(
    'route' => '/myvar/:start',
    'constraints' => array(
      'template' => '[a-zA-Z0-9_-]+'
    ),
    'defaults' => array(
      'controller' => 'module/controller',
      'action' => 'index',
    ),
  ),
),

控制器.php

class BookingController extends AbstractActionController
{
     ...
     $get = $this->params("start", "");
     $form->get('start')->setValue($get);
     ...
 }
于 2013-08-08T01:35:23.730 回答
0

我在以下位置创建了解决方案:

class BookingController extends AbstractActionController
{
     ...
     $get = $request->getQuery('start');
     $get = str_replace('_', ' ', $get);
     $form->get('start')->setValue($get);
     ...
 }

就这样。

于 2013-08-07T11:40:11.267 回答