0

在 Cakephp 中,我如何使用 Url 中的第一个参数,它就在控制器名称之后。我已经使用 route.php 自定义了 URL。我的网址就像

          http://www.example.com/Destination/india/pune

形成这个 URL “目的地”是控制器。我想访问印度作为参数。

4

3 回答 3

1

Config/routes.php使用中

Router::connect('/Destination/*', array('controller' => 'destination', 'action' => 'search'));
于 2013-01-28T05:23:02.737 回答
0

这可以使用路由轻松完成。但是,您必须知道控制器中的哪个操作是要传递给的参数。

例如,您可以有以下内容:

class DestinationsController extends AppController{

    public function view($country = null, $city = null){
        // Your logic can go here as to pull the right info from Db and display it on the view
        // Here you can access $country which might have India as the value
        // And if the only country you will be working with is India, then you can have
        // public function india($city = null) <===> This is not recommended
    }
}

你的 route.php 可能就像

Router::connect(
        '/destination/:country/:city',
        array(
              'controller' => 'destinations',
              'action' => 'view'
        ),
        array(
            'pass' => array('country','city')
        )   
    );
于 2013-01-28T16:38:24.527 回答
0

你可以检查一下——

使用 :-$this->params

只是为了咯咯笑试试$this->params['data']。我不知道为什么,但由于某种原因,它为我显示了表单数据。

如您在此处看到的,文档中的数据存在冲突

http://book.cakephp.org/view/972/data

我猜如果你使用 FormHelper,它会出现在 $this->data 中,如果你不使用 FormHelper,它会出现在$this->params['form'].

请注意,如果您使用 FormHelper,则元素的名称将是data['Model']['element_name'],如果您只是手动创建表单,则可以将其命名为“element_name”。通过稍后执行,我相信它会将其放入params['form']而不是$this->data.

你可以检查一下 routes.php

于 2013-01-28T05:37:38.913 回答