Могу ли я создать URL-адрес, как Google Mail в торт PHP? - PullRequest
0 голосов
/ 07 апреля 2011

Привет, Мастер CakePHP!Я хочу спросить кое-что.

Я думаю, что проблема настолько проста, возможно ли сгенерировать URL в приложении CakePHP, как это?(Это гугл-почта, такая как url ​​- http://mail.google.com/a/domain.com)

http://www.domain.com/a/[something]/[member]/[controller]/[action]

Где [что-то] - динамическая переменная, [member] - префикс, [controller] и [action] - обычный URL-адрес cakephp.

, поэтому я хочу сместить обычный URL-адрес CakePHP вправо или вставить / a / что-то / в исходный URL-адрес. Кроме того, [что-то] должно быть прочитано из действия контроллера

спасибо, ваша помощь будет очень ценной для меня и действительно поможет мне

ВОПРОС v2: Я пытался добавить эту маршрутизацию в route.php

Router::connect('/:code/:something/:controller/:action',
    array(),
    array('code'=>'a','pass'=>array('something'))
);

, когдая пытаюсь получить доступ к http://domain.local/a/pte/users/view,, это работает, но при попытке получить доступ к http://domain.local/a/pte/users

ВОПРОС v3:

простой вопрос:

Как получить URL-адрес, подобный Google (пример выше), не нарушая стандартную маршрутизацию CakePHP?

ВОПРОС v4: (Спасибо за @Rui)

Я пытался создать эту маршрутизацию:

Router::connect('/:code/:something/:prefix/:controller/*',
    array(),
    array('code'=>'a','pass'=>array('something'))
);

Все нормально, когда я пытаюсь получить доступ

http://domain.local/a/pte/member/users (Результатом является представление торта render member_index, это большой прогресс :-)),

, но есть несколько проблем:

  1. , когда я пытаюсьчтобы получить доступ к http://domain.local/a/pte/users ( без префиксного члена , я решил отобразить индексную функцию), это не удалось (отобразить ошибку, которую не определил контроллер)
  2. Когда я создаю ссылку

    echo $ html-> link ('тестовая ссылка', массив ('code' => 'a', 'что-то' => 'pte', 'member' => true, 'controller' => 'users',' action '=>' another_view '));

генерирует такую ​​ссылку

http://domain.local/member/users/another_view/code:a/something:pte

1 Ответ

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

Пожалуйста, попробуйте в /app/config/routes.php:

<?php 
   Router::connect('/a/:something/:member/:controller/:action/*'); 
?>

И действие должно быть:

<?php 
    public function action($something = null, $member = null) { 
    /* action code */
    } 
?>

Надеюсь, это поможет.

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