【问题标题】:kohana3.3 Route::url() not working very wellkohana3.3 Route::url() 不能很好地工作
【发布时间】:2013-08-19 07:30:39
【问题描述】:

```

路线设置:

Route::set('home', '(<action>)(_<p>.htm)', 
           array(
               'action' => '(movie|tv|new)', 
               'p' => '[2-9]|[1-9][0-9]+'
           )
)->defaults(
           array(
               'controller' => 'Home', 
               'action' => 'index', 
               'p' => 1
           )
);

通过Route::url()获取一个url:

Route::url('home',array('action' => 'movie', 'p' => 3));

有一个网址:

http:// www.domain.com/movie_3.htm

工作得很好。

但是

Route::url('home',array('action' => 'movie'));

有一个网址:

http:// www.domain.com/movie_1.htm 

这是不对的。

应该是:

http:// www.domain.com/movie/ 

```

我该如何解决????

谢谢。

=====更新 8/19 16:23 =====

Route::set('test', 'movie(_<p>.htm)', 
                array('p' => '[2-9]|[1-9][0-9]+')
          )->defaults(
                array('controller' => 'Movie', 'action' => 'index', 'p' => '1')
          );

此路线设置在任何情况下都适用

Route::url('test',array('p'=>'1'));

得到一个网址:

http://www.domain.com/movie

Route::url('test',array('p'=>'2'));

得到一个网址:

http://www.domain.com/movie_2.htm

Route::url('test');

得到一个网址:

http://www.domain.com/movie

= =,kohana核心有bug吗???

【问题讨论】:

    标签: php kohana kohana-3 kohana-3.3


    【解决方案1】:

    我认为您应该从默认值和验证器中删除“p”参数。所以你的代码应该是这样的:

    Route::set('home', '(<action>)(_<p>.htm)', 
               array(
                   'action' => '(movie|tv|new)'
               )
    )->defaults(
               array(
                   'controller' => 'Home', 
                   'action' => 'index'
               )
    );
    

    我不太确定是否要从默认值中删除 p,因此您可以尝试将其添加回来

    【讨论】:

    • Kohana_Exception [ 0 ]:未传递所需的路由参数:p
    • 删除这一行:'p' => '[2-9]|[1-9][0-9]+'
    • 谢谢,但“Kohana_Exception [ 0 ]:未传递所需的路由参数:p”
    • 我将“()(_

      .htm)”更改为“(_

      .htm)”。问题已经解决了。我需要一条新的路径来获取空的 path_info ....

    • 也许可以试试(&lt;action&gt;(/_&lt;p&gt;.htm))。您当前的路由使 URL 中传递的第一个参数的含义不明确。这将强制 kohana 在设置操作时仅接受&lt;p&gt;
    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2020-08-09
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    相关资源
    最近更新 更多