Cakephp - я хочу разрешить пользователю создавать свою собственную страницу, URL которой будет его именем - PullRequest
0 голосов
/ 18 апреля 2011

Я пытаюсь создать приложение, которое позволяет пользователю создать учетную запись, а затем создать свою собственную страницу.

Я хотел бы использовать комбинацию имени пользователя и фамилии в качествеURL их страницы, т.е. mywebsite.com/john_smith

Очевидно, мне нужно создать контроллер с соответствующим действием, но как мне сделать так, чтобы он имел желаемый URL?

Кстати, я прочитал руководство несколько раз (все о маршрутах, особенно esp) и прочитал множество учебных пособий и пару книг, но я не нашел ничего, что могло бы объяснитьэто точно.

любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

рекомендуем создать новый столбец, например url в вашей пользовательской таблице.

В users_controller.php указана функция просмотра, так что вы можете перейти на страницу пользователя по URL-адресу нет по 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))));
}

In rout.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']));
} 

Я имел дело с подобной проблемой, поэтому вы можете проверить мой вопрос.

0 голосов
/ 18 апреля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...