CodeIgniter, руководство пользователя к версии 1.6.1


Скаффолдинг

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

Очень важно: Скаффолдинг предназначен только для использования в ходе разработки. Он не безопасен, за исключением случая с использованием секретного слова в его названии. Каждый, кто имеет к нему доступ, может свободно модифицировать информацию в вашей базе данных. Если вы использовали скаффолдинг, то убедитесь, что не забыли отключить его. НЕ оставляйте его активным на работающем сайте. И, пожалуйста, переопределите секретное слово перед использованием.

Почему кто-то использует скаффолдинг?

Вот типичный сценарий: Вы создаете новую таблицу в базе данных в ходе разработки, и хотите сразу внести в нее некоторые данные. Без скаффолдинга вы можете либо написать несколько запросов в командной строке, либо использовать какую-нибудь СУБД, вроде phpMyAdmin. А когда закончите работу — сможете легко удалить эти данные.

Установка секретного слова

Прежде чем подключить скаффолдинг, пожалуйста, переопределите секретное слово. Это слово, при вводе которого в URL можно получить доступ к скаффолдингу, поэтому постарайтесь поставить его таким, чтобы никто не догадался.

Для установки секретного слова откройте ваш файл application/config/routes.php и найдите там такую строку:

$route['scaffolding_trigger'] = '';

Смените пустую строку на свое уникальное слово.

Замечание: Секретное слово скаффолдинга не может начинаться с подчеркивания.

Включение скаффолдинга

Замечание: Информация далее предполагает, что вы знаете как работают контроллеры, и у вас уже есть хотя бы один. Так же предполагается, что вы уже настроили подключение к базе данных. Если нет, то информация здесь не будет для вас актуальной и вам предлагается ознакомиться с этими разделами в первую очередь. Наконец, полагается, что вы понимаете, что такое конструктор класса. Если нет, то читайте об этом с последней части главы о контроллерах.

Для подключения скаффолдинга, вы должны инициализовать его в свой контроллер:

<?php
class Blog extends Controller {

       function Blog()
       {
            parent::Controller();

            $this->load->scaffolding('table_name');
       }
}
?>

Где table_name это имя таблицы (таблицы, не базы данных) с которой вы бы хотели работать.

После того как вы инициализируете скаффолдинг, он будет доступен вам по адресу, похожему на этот:

www.your-site.com/index.php/class/секретное_слово/

Например, при имени контроллера Blog и секретном слове abracadabra скаффолдинг будет доступен по адресу:

www.your-site.com/index.php/blog/abracadabra/

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

Последнее замечание:

Скаффолдинг будет работать только с теми таблицами, в которых определен PRIMARY KEY, т.к. это необходимо для работы с большинством функций базы данных.