фреймворк yii: URL-маршрутизация - PullRequest
2 голосов
/ 28 декабря 2011

Я изучаю Yii и столкнулся с проблемой маршрутизации URL.У меня есть контроллер следующим образом

class PageController extends Controller
{
public function actionIndex()
{

    echo 'index';
}
    public function actionGetPage($page = '')
{
            echo $page;
}

и в config / main.php

    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
                            'page'=>'page/index',
                            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),

Как я могу установить правила URL, поэтому при использовании http://localhost/page/About он должен работатьи распечатать "О"

Ответы [ 2 ]

8 голосов
/ 28 декабря 2011

По способу сделать это: в вашей конфигурации маршрута у вас должно быть что-то вроде:

'page/<key>' => 'page/index',

И определение actionIndex () следующим образом:

public function actionIndex($key) {
  echo $key;
...

Обратите внимание на дополнительный параметртребуется actionView ....Это будет равно используемому в URL.

0 голосов
/ 28 декабря 2011

Вы пытаетесь создать простую функцию, которая обрабатывает все страницы?Или просто заставить страницу About работать?

Если вы сделаете это:

public function actionAbout() {
   // code goes here
}

Представление, вызываемое в actionAbout, будет доступно по адресу localhost / page / about

Контроллер страницы - это то, что заставляет / page / работать, а / about определяется именем вашего действия.Таким образом, все, что после действия становится именем в URL.Следовательно:

public function actionTestingThis() {
    // code goes here
}

будет доступно в / page / testing. Это Yii делает верблюд, и поэтому первый T в TestingThis становится строчным.

Это отвечает на ваш вопрос?

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