我正在尝试创建一个允许用户创建帐户然后创建自己的页面的应用。
我想将用户的名字和姓氏组合作为其网页的网址,即mywebsite.com/john_smith
显然我需要创建一个具有适当动作的控制器,但是如何让它拥有我想要的url?
顺便说一句,我已经阅读了很多次手册(关于路线esp的所有内容),阅读了大量的教程和一些书籍,但我没有看到任何解释这一点。
任何帮助将不胜感激。
答案 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']));
}
我处理过类似的问题,所以你可以查看我的问题。