Простое решение красивых URL в Cakephp

    Если Вы просматриваете какую-то запись/пост на Cake-сайте, то скорее всего адрес выглядит так:
    /posts/view/5, где posts — модель, а 5 — номер id записи.
    Чтобы сгенерировать такую ссылку надо прописать что-то вроде:
    $html->link('CakePHP Tips', array('controller' => 'Post','action' => 'view',5));
    Естественно вы не будете писать id вручную, скорее всего это будет что-то вроде:
    $html->link($post['Post']['title'], array('controller' => 'Post','action' => 'view',$post['Post']['id']));

    А сейчас самое интересное:

    Вы можете написать дополнительный параметр, и он будет перенаправлен туда же.
    То есть /posts/views/5/Cakephp-tips, ведет туда же, куда и /posts/views/5

    Все! Нам больше нигде не нужно хранить Slug. Достаточно прописать его в ссылке

    $html->link($post['Post']['title'], array('controller' => 'Post', 'action'=>'view', $post['Post']['id'], Inflector::slug($post['Post']['title'], '-')));
    Это даст нам что-то вроде: /posts/view/5/cakephp_tips

    Кросс-пост с моего блога

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 2

      –1
      ну не сказал бы, что /posts/views/5 красивый урл, а здесь тогда что "/posts/views/"
      На мой взгляд красивее так /posts/5.html
        0
        я имею ввиду что /posts/view/5/url-to-slug красивее чем /posts/view/5

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое