2012-08-10 77 views
1

我在CakePHP的环境中创建一个应用程序, 我使用显示USER_ID用户的个人资料页如何在url中显示名称而不是在Cakephp中的id?

我送价值使用锚标记像下面控制器的用户配置文件: (我不能发送名称因为它不是唯一的)。

<a href="https://stackoverflow.com/users/<?php echo $result['user']['id'];?>">View Profile</a> 

功能在用户控制器:

function viewprofile($userid){ 
// my logic 
} 

的个人资料网址是这样的: http://www.xyz.com/users/12

我想显示的用户,而不是user_id说明

我们怎样才能显示的名称名称(带slu in)在cakephp的url中

请帮我

+0

您的问题很混乱 - 我尽我所能回答,但很难说出自己反驳自己以后要问什么至少两次。 – Dave 2012-08-10 21:23:37

+0

嗨Dave: Actully在我的用户表中有user_id,用户名,地址...等 我使用user_id获取用户的记录,以便将user_id传递给控制器​​。在cakephp中传递的值显示在url中,我上面已经提到过。 现在我只想显示用户的姓名不是ID – vin 2012-08-10 21:25:14

+0

k - 所以显示名称。我仍然不知道你在问什么 – Dave 2012-08-10 22:18:43

回答

1
echo $this->Html->link('View Profile', array(
    'controller' => 'users', 
    'action'=> 'view', 
    $result['user']['slug'] 
)); 
1

你必须做3件事。

  1. 创建独特的用户蛞蝓(您可能已经;-))

  2. 与戴维

    之前提到的代码

    回声$这个 - > HTML的“链接,创建链接(” View'Profile',array('controller'=>'users','action'=>'view',$ result ['user'] ['slug']));

  3. 路由器连接::( '/用户/ *',阵列( '控制器'=> '用户' 告诉你的路由做什么(/app/condig/routes.php) 'action'=>'view'));现在

,你会得到相当的URL和蛞蝓将可用于查找用户在用户表

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") 
     ) 
    ); 
相关问题