我在cakephp环境中创建了一个应用程序, 我正在使用用户个人资料页面中的user_id显示用户个人资料
我使用锚标签将值发送到控制器,如下所示: (我不能发送名称,因为它不是唯一的。)
<a href="/users/<?php echo $result['user']['id'];?>">View Profile</a>
用户控制器中的功能:
function viewprofile($userid){
// my logic
}
个人资料网址如下: http://www.xyz.com/users/12
我想显示用户名而不是user_id
我们如何在cakephp中的url中显示名称(带slug)
请帮帮我
答案 0 :(得分:1)
echo $this->Html->link('View Profile', array(
'controller' => 'users',
'action'=> 'view',
$result['user']['slug']
));
答案 1 :(得分:1)
你必须做3件事。
创建独特的用户S((您可能已经拥有;-))
使用前面提到的代码Dave创建链接
echo $ this-&gt; Html-&gt; link('View Profile',array('controller'=&gt;'users','action'=&gt;'view',$ result ['user'] [ '蛞蝓']));
告诉你的路由器用它做什么(/app/condig/routes.php)
Router :: connect('/ user / *',array('controller'=&gt;'users','action'=&gt;'view'));
现在你将获得漂亮的网址,slug将是一个参数,可用于在你的用户表中找到用户
答案 2 :(得分:0)
试试此代码
echo $this->Html->link('View Profile',array('plugin' => false,
'controller' => 'users',
'action' => 'view',
"slug"=>$data['slug']));
在您的路线文件中
Router::connectNamed(array('slug'));
Router::connect('/user/:slug', array(
'plugin' => false,
'controller' => 'users',
'action' => 'view',
),array(
"pass"=>array("slug")
)
);