无法将参数从视图传递到控制器

时间:2015-08-21 12:27:55

标签: zend-framework

大家好我目前正在使用zend 2.3。在列出学生的同时,我正在尝试建立链接,以便显示有关所选人员的详细信息。我的问题是我无法将选定的id传递给模块控制器中的操作。这是我的视图代码,它与链接相对应:

 <a href="<?php echo $this->url('admin' ,
             array( 'controller'=>'Admin', 'action'=>'viewstudent', 'ID' => $student->ID))."/admin/viewstudent";?>">detales</a>

和控制器中的操作

public function viewstudentAction ()
{

    $id = (int) $this->params()->fromRoute('ID', 0);
echo $id;
//echo var_dump($id);
    return new ViewModel(array(
        'students' => $this->getStudentTable()->viewstudent($id),
    ));
}

然后我var_dump $id变量显示0那么这样做的正确方法是什么?

我已编辑了像这样的href代码

<a href="<?php echo $this->url('admin/default' ,
             array( 'controller'=>'Admin', 'action'=>'viewstudent', 'id' => $student->ID));?>">Просмотр</a>

它解决了这个问题:

<a href="/disability/public/admin/Admin/viewstudent">Просмотр</a>

网址

http://localhost:8080/disability/public/admin/Admin/viewstudent

网址是

http://localhost:8080/disability/public/admin/Admin/viewstudent

问题是同样的id未通过

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案。我使用查询传递了参数,这是它在视图文件中的外观

<a href="<?php echo $this->url('admin/default', 
   array('controller' => 'Admin',  
           'action'=>'viewstudent' 
     ), 
     array('query' =>  
         array('id' => $student->ID) 
     ) 
 ); 

         ?>">view</a>

然后使用$ this-&gt; params在我的控制器文件中撤回它

  $id =  $this->params()->fromQuery('id');