如何在 URL 中设置关键字并希望在 Cakephp 控制器中读取该关键字然后将其设置为查看
Posted
技术标签:
【中文标题】如何在 URL 中设置关键字并希望在 Cakephp 控制器中读取该关键字然后将其设置为查看【英文标题】:How can I set a keyword in URL & want to read that in Cakephp controller & then set it for view 【发布时间】:2014-04-16 06:38:43 【问题描述】:您好,我想在必须通过邮件发送的 URL 链接中设置关键字值,因此单击该链接时,用户将进入我的网站,我想在获取后通过 $this->params['url']
读取该关键字值这个值,我必须为我的视图页面设置它,所有结果都将根据关键字值来。
我对不同的电子邮件有不同的关键字,所以根据收件人的邮件,当他/她点击它时,他/她应该根据他/她的关键字在他/她的视图中得到结果。所有编码都在 cakephp 中完成
【问题讨论】:
到目前为止您尝试过什么?您需要发布一些您尝试在 SO 中获得帮助的代码 【参考方案1】:如果你的行为是-
public function identify_user($userId = null)
那么任何 url 作为 www.example.com/users/identify_user/4 将把 $userId
作为 4;
现在,如果
public function identify_user($userId = null, $identificationId = null)
那么任何网址都以www.example.com/users/identify_user/4/abcdef12345
的形式出现,将$userId
作为4 和$identificationId
作为abcdef12345;
还有其他方法,例如命名参数或查询参数。命名参数找到为 name => $value; (注意:尽量避免命名参数,它会贬值)
您可以使用查询参数构建 url,然后使用 $this->request->query();
准备好查询参数
现在如何构建 url?
如果您使用第一种方法意味着传递参数,则将链接构建为-
$link = $this->html->link('Link name to display', array('controller' => 'Users', 'action' => 'identify_user', $user['User']['id']));
这里$user['User']['id']
来自数据库;
命名参数:
$link = $this->Html->link('Link name to display', array(
'controller' => 'Users',
'action' => 'identify_user',
'user_name' => $user['User']['name'],
'unique_id' => String::uuid()
)
);
读取命名参数-
$this->request->params['named']['unique_id'];
查询参数-
$link = $this->Html->link('Link name to display', array(
'controller' => 'Users',
'action' => 'identify_user',
'?' => array(
'user_name' => $user['User']['name'],
'unique_id' => String::uuid()
)
)
);
读取查询参数- $this->request->query('unique_id');
【讨论】:
以上是关于如何在 URL 中设置关键字并希望在 Cakephp 控制器中读取该关键字然后将其设置为查看的主要内容,如果未能解决你的问题,请参考以下文章
Webpack 4 代理(如何在 webpack 4 中设置代理 url)