Создание контроллера и подключение модели

Как и писал ранее о создании модели, все создано очень просто и понятно, с контроллерами практически все тоже самое. Контроллер обращается к модели, которая в свою очередь создает выборку из базы данных и передает обратно в контроллер, контроллер создает вид и передает все данные в представление (view).

Работая с контроллерами мы так же будет создавать новые контроллеры как и модели, каждый контроллер будет отвечать за определенный вывод информации, новости/пользователи и прочее.

Начнем писать контроллер
У нас уже есть модель Model_Post.php, теперь создаем в папке
/application/controllers/


наш первый контроллер Control_Post.php
<?php
class Control_Post extends CI_Controller {

 public function __construct()
    {
        parent::__construct();
        // подключаем модель
        $this->load->model('model_post');
    }
 /***
 * функция для вывода всех записей на страницу
 *
 */
 public function posts()
    {
        // Обращаемся к нашей модели, к функции get_post
        $data['posts'] = $this->model_post->get_post();

        // Это будет заголовком страницы title
        $data['title'] = 'Все посты';

        // Подключаем библиотеку пагинации, в скорое она нам пригодится
        $this->load->library('pagination');

        // Подгружаем шаблоны
        $this->load->view('views/header', $data);
        $this->load->view('views/post', $data);
        $this->load->view('views/footer');
    }

}


и так давайте рассмотрим подробнее.
Переменная $data['posts'] содержит массив всех записей из базы данных, которые выводит наша модель Model_post.
$data['title'] — будет заголовком страницы
$this->load->library('pagination');


В CodeIgniter как я и писал ранее есть стандартные библиотеки, которые позволяют сделать полноценный сайт не прибегая к сторонним скриптам, классам.
Обратите внимание, чтобы подгружать библиотеки автоматически на всех страницах сайта, их необходимо прописать в /config/autoload.php
вместо
$autoload['libraries'] = array();


пишем
$autoload['libraries'] = array('pagination');


Так же и с хелперсами и с моделями и прочим. Все сделано для людей и для удобства разработки.

Перейдем далее.
$this->load->view('temp/header', $data);
        $this->load->view('temp/post', $data);
        $this->load->view('temp/footer');


Нам нужно создать файлы шаблона, а именно файл header, footer, post создаем их в папке /application/views/temp/. Так же обратите внимание на $data, если нам необходимо что либо вывести в шаблоне из функции, нам необходимо указать в данных шаблонах $data, она у нас содержит массив заголовок и посты.

header.php
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php echo $title ? $title : 'нету'; ?></title>
    </head>
<body>


footer.php
</body>
</html>


post.php
<?php echo $paginator ?>
<?php foreach ($posts as $cell): ?>

    <h2><?php echo $cell['title'] ?></h2>
    <div id="main">
        <?php echo $cell['post'] ?>
    </div>
    <p><a href="/post/<?php echo $cell['id'] ?>">View article</a></p>

<?php endforeach ?>


Что мы сделали, мы создали цикл где форечем перебираем все посты из базе данных, так как $post содержит массив всех постов которые сформировал нам контроллер обратившийся в нашу модель.

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

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.