Cakephp - 我想允许用户创建自己的页面,其中的url将是他的名字

时间:2011-04-18 18:30:43

标签: php url cakephp routing

我正在尝试创建一个允许用户创建帐户然后创建自己的页面的应用。

我想将用户的名字和姓氏组合作为其网页的网址,即mywebsite.com/john_smith

显然我需要创建一个具有适当动作的控制器,但是如何让它拥有我想要的url?

顺便说一句,我已经阅读了很多次手册(关于路线esp的所有内容),阅读了大量的教程和一些书籍,但我没有看到任何解释这一点。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

建议在用户表格中创建新列,例如 url

users_controller.php 指定视图功能中,您可以按ID列号来访问用户页面。

function view($url = null) {
  if (!$url) {
    $this->Session->setFlash(__('Invalid product', true));
    $this->redirect(array('action' => 'index'));
  }
  $this->set('user', $this->User->find('first',array('conditions'=>array('User.url' => $url))));
}

routes.php

Router::connect('/*', array('controller' => 'users', 'action' => 'view')); 

但如果您使用其他控制器,这可能会导致问题。所以我使用的是这样的东西:

$usersModel = ClassRegistry::init('User');
$users = $usersModel->find('all');    
foreach($users as $user){
  Router::connect('/'.$user['User']['url'], array('controller' => 'users', 'action' => 'view',$user['User']['url']));
} 

我处理过类似的问题,所以你可以查看我的问题。