在Cakephp中,如何在Url中使用第一个参数,它位于控制器的名称之后。我使用route.php自定义URL。我的网址就像是
http://www.example.com/Destination/india/pune
表示此Url“目的地”是控制器。我想访问印度作为参数。
答案 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')
)
);