ZF2表格上丢失ID

时间:2015-02-19 09:19:28

标签: zend-framework2

我无法从视图(或其他地方)传递ID。这是网址:

http://zend2.com/users/user-manager/edit/6

控制器:

    public function editAction()
{
    if ($this->request->isPost()) {
        $post = $this->request->getPost();
        echo $post->user_id; exit;
        $userTable = $this->getServiceLocator()->get('UserTable');
        $user = $userTable->getUser($post->id);
        $form = $this->getServiceLocator()->get('UserEditForm');
        $form->bind($user);
        $form->setData($post);
        $this->getServiceLocator()->get('UserTable')->saveUser($user);
    }

    $userTable = $this->getServiceLocator()->get('UserTable');
    $user = $userTable->getUser($this->params()->fromRoute('id'));
    $form = $this->getServiceLocator()->get('UserEditForm');

    $form->bind($user);

    $viewModel = new ViewModel(array(
        'form' => $form,
        'user_id' => $this->params()->fromRoute('id')
    ));
    return $viewModel;

}

观点:

    $form->setAttribute('action', $this->url(NULL,
    array('controller' => 'users_manager', 'action' => 'edit')));
    $form->setAttribute('method', 'post');

传递身份证的正确方法是什么?我知道我没有在视图中传递ID,但我甚至不确定这是对的。

2 个答案:

答案 0 :(得分:0)

我解决了。

$form->setAttribute('action', $this->url(NULL,
array('controller' => 'users_manager', 'action' => 'edit'),null, true));

$ this-> url的第4个参数是" $ reuseMatchedParameters",它说明了一切。

答案 1 :(得分:0)

另一种选择是:

$options = ['Query' => ['id' => 12]];
echo $this->url('controller' => 'users_manager', 'action' => 'edit', $options);