Как перенаправить домашнюю страницу блога, если идентификатор сообщения пуст или отсутствует в codeigniter - PullRequest
1 голос
/ 25 октября 2019

Я занимаюсь разработкой веб-сайта блога с использованием Codeigniter. Когда я нажимаю category, отображаются все сообщения по категориям, но я хочу, чтобы они перенаправлялись на домашнюю страницу блога, если идентификатор сообщения не существует или пуст по URL.

Как я могу сделать это в Codeigniter?

В строке PHP мы могли бы использовать метод $_Get для проверки того, установлен или нет идентификатор сообщения. Если он был пуст или не существует, мы можем перенаправить на домашнюю страницу, используя метод header().

Итак, как мне сделать перенаправление в Codeigniter?

1 Ответ

0 голосов
/ 25 октября 2019

Предположим, у вас есть что-то вроде:

/blog/post/some-post-title

Ну, это нормально. some-post-title существует, и все работает.

Теперь предположим, что у нас есть /blog/post/123, где 123 не существует. Что ж, мы можем либо настроить наш типичный 404 (предпочтительный и автоматический), либо сделать что-то еще;что звучит как то, что вы хотите.

В этом случае все, что нам нужно сделать, это проверить, существует ли, во-первых, что-нибудь после /post/ и действительно ли в таблице базы данных есть слаг или идентификатор.

class Blog extends CI_Controller {

    public function post($slug = null) {

        if (is_null($slug) || $this->blog_model->exists($slug)) {
            redirect('/blog');
        }
        ... load your views... whatever

    }

}

class Blog_model extends CI_Model {

    public function exists($slug) {
        $this->db->where('slug', $slug);
        return $this->db->count_all_results('blog_db_table') == 1;
    }

}

Очевидно, вам придется адаптировать это к вашей конкретной схеме.

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