Заменить идентификатор из CakePHP URL - PullRequest
1 голос
/ 07 января 2012

Как заменить / posts / view / id на / posts / view / code ?

- это поле в базе данных, содержащее 10случайные числа, сгенерированные с использованием функции mt_rand ().

В PostsController у меня есть эта функция для просмотра сообщений:

public function view($id = null) {
    $this->Post->id = $id;
    $this->set('post', $this->Post->read());
}

Теперь я хочу использовать код вместо ID .

Спасибо за ваши ответы!

ОБНОВЛЕНИЕ :::

Кто-то из Q & A CakePHP решил мою проблему.

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

в вашем файле route.php добавьте этот код:

Router::connect('/posts/view/:code', array('controller' => 'news', 'action' => 'view'), array('pass' => array('code')));

в вашем контроллере измените метод представления следующим образом:

public function view($code = null) {
   $this->set('post', $this->Post->findByCode($code));
}

Спасибо большое!

Ответы [ 2 ]

1 голос
/ 07 января 2012

я использовал cakePHP

всего несколько раз, но я думаю, что вы должны увидеть маршрутизацию в cakePHP, вы должны изменить переписать URL

0 голосов
/ 07 января 2012

Я думаю, что это будет URL вроде / posts / view / id / code.Затем, используя идентификатор, вы получаете код из базы данных:

public function view($id = null, $code = null) {
   $this->Post->id = $id;
   //..DO CAKEPHP QUERY TO GET CODE USING ID HERE. ASSIGN TO $code.
   $this->Post->code = $code;
   $this->set('post', $this->Post->read());
}
...