如何将2个数组作为参数从控制器传递到视图

时间:2016-09-09 13:35:52

标签: php forms zend-framework2 zend-form

我正在使用zend框架,我正在尝试创建一个编辑联系人页面。当页面加载时,我想显示一个表单,其中包含这些字段的当前存储值。

我正在尝试将表单和数据库值传递给我的视图,以便我可以使用这些字段的当前值预填充表单。我可以传递表格或联系人数组。但是当我尝试传递时,其中一个数组将返回null

public function editContactAction()
{
    $form = new EditContact();
    $id = $this->params()->fromRoute('contactId');

    $variables = array();
    $contactService = $this->getServiceLocator()->get('User\Service\UserService');

    $variables['contacts'] = $contactService->editContact($id);

    return new ViewModel(array('form' => $form), $variables);
}

1 个答案:

答案 0 :(得分:0)

很简单。 ViewModel参数是一个数组,在arguments数组中传递$variables数组:

public function editContactAction()
{
     $form = new EditContact();
     $id = $this->params()->fromRoute('contactId');

     $variables = array();
     $contactService = $this->getServiceLocator()->get('User\Service\UserService');

     $variables['contacts'] = $contactService->editContact($id);

     return new ViewModel(array(
         'form' => $form,
         'variables' => $variables
     ));
}

在您看来,您可以通过以下方式访问此$variables数组:

$this->variables ;
相关问题