Как я могу сделать этот маршрут правильно в CakePHP?

0

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

У меня есть это действие

// MembershipsController
public function professional_info($type = null, $member_id = null) {
  // Work done here.
}

Это легко доступно через url /memberships/professional-info/mytype/{user-id-here}

Однако я хотел бы изменить этот URL-адрес:

/mytype-professional-info/{user-id-here}

По этой причине я пытаюсь создать маршрут, автоматически передающий mytype в качестве первого аргумента для professional_info, а затем принимает числовой идентификатор пользователя из URL-адреса, передавая его как второй аргумент.

Я пробовал вещи, похожие на следующие:

Router::connect('/mytype-professional-info/:id',
    array('controller' => 'memberships', 'action'=> 'professiona_info', 'mytype'),
    array(
        "pass" => array('id'),
        "id" => '[0-9]+',
    )
);
  • Я не уверен, как правильно настроить этот маршрут. Может ли кто-нибудь объяснить мне, как я могу создать маршрут, который передает статические значения для некоторых аргументов, и динамические значения из url для других аргументов?

Большое спасибо.

Теги:
cakephp
routing

1 ответ

0

Как вы определили маршрут, он будет передавать тип, но как второй аргумент.

Если это не приемлемо по какой-либо причине, вам придется явно передать параметр, однако это работает только с использованием именованных элементов:

Router::connect(
    '/mytype-professional-info/:id',
    array(
        'controller' => 'memberships',
        'action'=> 'professional_info',
        'type' => 'mytype'
    ),
    array(
        'pass' => array('type', 'id'),
        'id' => '[0-9]+',
    )
);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню