在 Cakephp 中,我如何使用 Url 中的第一个参数,它就在控制器名称之后。我已经使用 route.php 自定义了 URL。我的网址就像
http://www.example.com/Destination/india/pune
形成这个 URL “目的地”是控制器。我想访问印度作为参数。
在 Cakephp 中,我如何使用 Url 中的第一个参数,它就在控制器名称之后。我已经使用 route.php 自定义了 URL。我的网址就像
http://www.example.com/Destination/india/pune
形成这个 URL “目的地”是控制器。我想访问印度作为参数。
Config/routes.php
使用中
Router::connect('/Destination/*', array('controller' => 'destination', 'action' => 'search'));
这可以使用路由轻松完成。但是,您必须知道控制器中的哪个操作是要传递给的参数。
例如,您可以有以下内容:
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')
)
);
你可以检查一下——
使用 :-$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