如何传递给url CakePHP 3中的id和slug

时间:2015-02-27 12:29:23

标签: cakephp-3.0

我有一个功能视图,我传递了2个参数,$ id和$ slug, 我想要example.com/slug-id,然后在我的routes.php中我有

   Router::connect(
'/view/:id-:slug', 
['controller' => 'Posts', 'action' => 'view'],
[
    'pass' => ['id', 'slug'],
    'id' => '[0-9]+'
]

); 我的功能是

public function view($slug = null, $id = null){
    // Time Format
    Time::setToStringFormat('dd-MM-YYYY');

    if(!$id)
        throw new NotFoundException('error !');

    $post = $this->Posts->get($id);

    if($slug != $post->slug)
        throw new NotFoundException("error");
    $this->set(compact('post'));

}

但是为什么我去参加example.fr/posts/view/test-1

我有NotFoundException吗?

2 个答案:

答案 0 :(得分:0)

好的,那就是我,我的问题不清楚。

问题不在于路线,而在于我的功能

现在,如果我的网址是example.fr/3-myfirstpost或example.fr/3-qweqwe,我没有错误,如果slug和id不正确,我想要一个错误 怎么做?

答案 1 :(得分:0)

您的路由器会转换以下模式     /视图/:ID-:蛞蝓 更换     example.fr/posts/view/test-1 by     example.fr/posts/view/1-test