如何在 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)

如何在 libre office 中设置 URL 编码的超链接?

如何在Windows系统中设置Python程序定时运行

如何在 openapi 中设置默认 API 定义 url?

如何在改造调用中设置 url 的静态结尾

如何在从 javascript 传递的 flash (swf) 中设置动态变量?