Как стать автором
Обновить

Grocery CRUD, или как я облегчил себе жизнь на неделю

Время на прочтение2 мин
Количество просмотров16K
Добрый день, ХабраСообщество!
Уже почти месяц веду разработку проекта на CodeIgniter 2.0 и к середине написания столкнулся с проблемой при написании администраторской части. Так сложилось что с «CI» знаком уже более 2-х лет, и еще не разу CodeIgniter меня не подвел в своих возможностях.
Сам проект у меня исчисляется 35 таблицами и писать администраторскую панель мне необходимо для «хомячков». Подсчитав приблизительные человеко-часы необходимые на разработку интерфейса + программной части, я пришел в дикий ужас. Энтузиазм немного поутих (проект мой личный). Вспоминая добрым словом хоть какой-то CRUD в старых версиях, я рискнул «спросить Гугл», авось повезет… И повезло!

Представляю вашему вниманию — Grocery CRUD | Сайт разработчиков

Простой и понятный генератор «СоздатьЧитатьОбновлятьУдалять» для ваших таблиц в проектах CodeIgniter

Вся установка сводится к банальному разархивированию в папку с проектом, и созданию контролёра

<?php
function название_таблицы()
{
    $output = $this->grocery_crud->render();
 
    $this->_example_output($output);
}
?>

Приводит к такому (пример разработчика):


Как видно, всё что нужно уже есть, но на этом возможности не заканчиваются.

Вывод нужных столбцов в общий вид
<?php 
function customers_admin()
{
    $this->grocery_crud->set_table('customers');
    $this->grocery_crud->columns('customerName','phone','addressLine1','creditLimit');
 
    $output = $this->grocery_crud->render();
 
    $this->_example_output($output);
}
?>

Указали таблицу, указали столбцы — и получили красоту:


Отношения 1:1
image
<?php
function employees_admin() {
$crud->set_table('employees');
$crud->display_as('officeCode','Office City'); //Задаем название для поля в котором будет проходить Relation

$crud->set_relation('officeCode','offices','city'); //  set_relation(Поле в главной таблице для Отношения,Таблица Отношения,Поле для отображения из Относительной таблицы);

$output = $crud->render();
 
$this->_example_output($output);
}
?>


На выходе получаем связанные записи:


Отношения через таблицу
image

В случае если относительная таблица большая:


В случае если относительная таблица маленькая:


AJAX загрузка файлов
Решается это одной строкой:
...
$crud->set_field_upload('file_url','assets/uploads/files');// первый параметр - имя поля куда запишется имя файла
...

Файл при загрузке получает 6-ти символьный рандомный ключ-префикс.

Дополнительно:
  • Для полей text — TinyMCE по дефолту
  • Для полей date — DatePicker
  • Для полей datetime — DataPicker + TimePicker


Итог:

На всю «разработку» администраторской панели потратил не более часа, с просмотром исходников. Однозначно всем программистам использующим фреймворк CodeIgniter — советую!

Над проектом активно ведется разработка на GitHub
Теги:
Хабы:
Всего голосов 11: ↑11 и ↓0+11
Комментарии9

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань