создание динамических URL-адресов страниц с помощью CI (маршрутизация) - простой пример доски объявлений - PullRequest
2 голосов
/ 20 марта 2012

Мне кажется, что у меня достаточно опыта работы с КИ, чтобы наконец начать дурачиться с созданием доски объявлений ... Или, по крайней мере, так я думал, пока не застрял в создании динамических страниц на основе имен субъектов (слагов).

Итак, я создал контроллер / модель / представления и настроил форму, которая передает необходимую информацию в базу данных. Я вытащил темы и отобразил их, и сгенерировал ссылку для каждой из них на основе заголовка темы ... Я, по сути, следовал руководству по CI, редактируя его в соответствии со своими потребностями.

Однако понимание концепции генерации URL-адресов динамических страниц меня отбрасывает. Я гораздо лучше понимаю, слушая, что именно происходит во время процесса, а учебник по кодовым заголовкам (новости) не очень хорошо это объясняет. Он просто говорит вам, что делать и как, а не почему.

Любой желающий попытается объяснить более подробно процесс кодирования динамических страниц.

Что я подразумеваю под динамическими страницами:

http://your -site.com / Новости / 1 / привет-мир http://your -site.com / Новости / 1 / Foo-бар

где привет мир и foo bar.

Вот некоторые детали, которые меня смущают:

<?php

class Pages extends CI_Controller {

    public function view($page = 'home')
    {

    }
}

и вот маршрутизация

$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';

что представляет собой 1 доллар? Какой-то конкретный URL, что там? Когда бы вы использовали 2 доллара? Это встроенный код для CI, или вы можете использовать любую переменную?

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

Теоретически, ответив на эти вопросы, что нужно сделать, чтобы создать новую страницу для ветки форума?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 20 марта 2012

что представляет собой 1 доллар?Какой-то конкретный URL, что там?Когда бы вы использовали 2 доллара?Это встроенный код для CI, или вы можете использовать любую переменную?

$1 представляет ссылку на переменную, созданную подстановочным знаком (:any).Нет $2, потому что у вас есть только один подстановочный знак.

У вас будет второй подстановочный знак, если вы создадите маршрут, подобный следующему:

$route['pages/(:num)/(:any)'] = 'pages/$1/$2';

С учетом сказанного, настройка маршрутав вашем вопросе вид поражения цели архитектуры MVC CI и системы маршрутов, поскольку вы перенаправляете ВСЕ маршруты на pages/views, я вполне уверен, что вы хотите что-то вроде:

$route['default_controller'] = 'pages/view';
$route['pages/view/(:any)'] = 'pages/view/$1';
3 голосов
/ 20 марта 2012
<?php

class Pages extends CI_Controller {

    public function view($page = 'home')
    {

    }
}

Соответствующий URL для этого метода будет http://example.com/pages/view/. В методе он установлен на $page = 'home', потому что, если в URL нет третьего сегмента, по умолчанию он будет home.

$route['(:any)'] = 'pages/view/$1';

Переменная $1 - это то, что у вас есть в качестве (:any).Поэтому, если ваш URL равен http://example.com/testing,, он будет перенаправлен на http://example.com/pages/view/testing, и это, в свою очередь, установит переменную $ page от вашего метода представления до «testing».

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