代码之家  ›  专栏  ›  技术社区  ›  black sensei

如何让一个正常表单的动作遵循Zend自定义路由?

  •  0
  • black sensei  · 技术社区  · 15 年前

    我已经学习了Zend框架,并且正在使用它,下面是我希望看到的情况 实现。
    我有 default user modules ,用户具有不同的布局 user_layout 我加载 predispatch 属于 NovelsController 用户模块。我在用户布局中有一个小窗体, post NovelsController的显示日期(从和到)。

    这是密码

    <!-- the form inside user_layout -->
    <form method="get" action="/user/novels/show">
       <table class="font">
          <tr>
              <td> <label for="to">From:</label></td>
              <td class="simple_margin_left"><input type="text" id="from" name="from" size="12"/></td>
          </tr>
          <tr>
             <td> <label for="to">To:</label></td>
             <td class="simple_margin_left"><input type="text" id="to" name="to" size="12" /></td>
          </tr>
          <tr>
             <td> </td>
             <td></td>
          </tr>
          <tr>
    
              <td colspan="2" align="center"><button type="submit" style="padding-left:10px; padding-right:10px; margin-left:0px" class="classy">Check</button> </td>
          </tr>
       </table>
    
    </form>
    

    我用以下方法

    $input = new Zend_Filter_Input($filters, $validators);
    $input->setData($this->getRequest()->getPost());
    

    到目前为止,一切都很好,我现在想启用到show.phtml的分页,所以我将表单操作更改为在application.ini中获取和定义路由,就像这样。

    resources.router.routes.user-show.route = /user/novels/show/:page/:from/:to
    resources.router.routes.user-show.defaults.controller = novels
    resources.router.routes.user-show.defaults.module = user
    resources.router.routes.user-show.defaults.action = show
    resources.router.routes.user-show.defaults.page = 1
    resources.router.routes.user-show.defaults.from = ""
    resources.router.routes.user-show.defaults.to = ""
    

    我如何使表单操作遵循这个规则,因为到目前为止它只是一个普通的查询字符串,带有问号和variable=value。

    我怎样才能做到?谢谢你读这个。

    1 回复  |  直到 15 年前
        1
  •  1
  •   David Snabel-Caunt    15 年前