cakephp Url问题?

时间:2013-01-28 05:19:52

标签: php cakephp-2.0

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

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

表示此Url“目的地”是控制器。我想访问印度作为参数。

3 个答案:

答案 0 :(得分:1)

Config/routes.php中使用

Router::connect('/Destination/*', array('controller' => 'destination', 'action' => 'search'));

答案 1 :(得分:0)

你可以查一下---

使用: - $this->params

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

您可以在此处看到文档存在冲突的数据

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

我猜测如果您使用FormHelper,它将显示在$ this->数据中,如果您不使用FormHelper,它将显示在$this->params['form']

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

您可以在routes.php

上查看

答案 2 :(得分: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')
        )   
    );