Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к лаб раб web-программирование.doc
Скачиваний:
448
Добавлен:
07.06.2015
Размер:
4.4 Mб
Скачать

Лабораторная работа №5 Работа с таблицами бд с использованием mvc фреймворка

Цель работы: получить практические разработки модулей приложений с помощью фреймворка CodeIgniter для разработки каталога.

Теоретические сведения

Использование хелперов:

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

  • URL Хелперы - помогают создавать ссылки,

  • Хелперы форм - помогают создать элементы форм

  • Текстовые хелперы - выполняют различные функции по форматированию текста

…..

  • Если нужно загрузить более одного хелпера, можно перечислить их в одном массиве:

$this->load->helper( array('helper1', 'helper2', 'helper3') );

  • Авто-загрузка хелперов - если необходим хелпер для всего приложения, можно указать CodeIgniter, чтобы он загружал его при инициализации приложения.

В файле application/config/autoload.php добавить хелпер в массив автозагрузки:

$autoload['helper'] = array('url');

П

Users

id

First_name

Last_name

nick

email

password

ример:

Структура приложения:

  • Controllers:

admin.php

  • Models:

-blog_model.php

-user_model.php

-post_model.php

  • Views:

Content, например View/post.php

<div>

<div style="color:blue"><?=$this->session->flashdata('info')?></div>

<table border="1">

<tr> <td> Id </td> <td> Id_user </td> <td> post_name </td> <td> post_data </td><td> post_delete</td>

</tr>

<?php foreach($posts as $post):?>

<tr>

<td><?=$post->id_post?></td>

<td><?=$post->first_name?></td>

<td><?=$post->contents?></td>

<td><?=$post->created_at?></td>

<td><?=anchor("admin/delete_post/$post->id", "delete")?></td>

</tr>

<?php endforeach; ?>

</table>

</div>

View/Profiles.Php

<div>

<div style="color:blue"><?=$this->session->flashdata('info')?></div>

<table border="1">

<tr> <th>Id:</th> <td><?=$profile->id?></td></tr>

<tr> <th>First name:</th> <td><?=$profile->first_name?></td></tr>

<tr> <th>Last name:</th> <td><?=$profile->last_name?></td></tr>

<tr> <th>Nick:</th><td><?=anchor("admin/edit_profile", $profile->nick)?></td>

</tr>

<tr> <th>E-mail:</th> <td><?=$profile->email?></td></tr>

</table>

</div>

Controller/admin.php

<?php

class Admin extends Controller {

function Admin()

{ parent::Controller();

$this->load->model('Blog_model', 'blog');

$this->load->model('User_model', 'user');

$this->load->model('Post_model', 'post');

$this->load->helper(array('form', 'text', 'admin')); }

function index()

{ redirect("admin/settings"); }

function settings() {

$data['settings'] = $this->blog->current();

$this->_render('settings', $data); }

function profile() {

$data['profile'] = $this->user->current(); // Обращение к модели, вызов функции

$this->_render('profiles', $data); } // имя view

function post() {

$data['posts'] = $this->post->all();

$this->_render('posts', $data); }

function edit_profile() {

$this->form_validation->set_rules('profile[first_name]', 'First name', 'required');

$this->form_validation->set_rules('profile[last_name]', 'Last name', 'required');

$this->form_validation->set_rules('profile[nick]', 'Nick', 'required');

if ($this->form_validation->run() == FALSE) {

$this->session->set_flashdata('info', "Profile not saved!");

$data['profile'] = $this->user->current();

$this->_render('edit_profile', $data); }

else { $this->user->edit_profile($this->input->post('profile')); // Обращение к модели, вызов функции edit_profile. Передача данных по методу post

$this->session->set_flashdata('info', "Provile saved!");

redirect('admin/profile'); } }

Задание на работу:

Используя MVC фреймворк выполнить следующее:

  1. Разработать модуль авторизации пользователей

  2. Выполнить валидацию данных

  3. Реализовать crud операции (create, read, update, delete) над основными сущностями предметной области