Разработка с Grocerycrud за Codeigniter pHp

Съдържание
Когато разработваме приложение или уеб системи, обикновено трябва да взаимодействаме с бази данни. За това трябва да създадем интерфейси, които ни позволяват да се свързваме, добавяме данни, редактираме или изтриваме. Този вид операция е позната по различни начини
CRUD е съкращение, което означава Създаване, Четене, Актуализиране и Изтриване. ABM е съкращение, което означава High, Low и Modification на данни. ABCDE е съкращение, което означава Добавяне, Намиране, Промяна, Показване (показване или списък), Изтриване на данни.
Всеки php уеб разработчик винаги се стреми да оптимизира времето за разработка и изпълнението на този тип задачи изисква много време, например създаване на проста, стабилна и сигурна система за уеб администрация. Всъщност това, което отнема най -много време, е да разберете и преведете в кода изискванията за взаимодействие с базата данни, бизнес логиката, моделите и изгледите за взаимодействие с всяка таблица в базата данни.
Решение в този случай за CodeIgniter е използването на Библиотека Grocerycrud, която ще отговаря за генерирането на всичко чрез просто конфигуриране на някои параметри, Той също така включва css дизайн, JavaScripts, таблици, формуляри, решетка с данни, функции, модели, които можем да използваме директно в нашата система.
CRUD за хранителни стоки е библиотека, разработена в pHp, е безплатен софтуер и лиценз с отворен код GPL v3 и MIT. За да го използваме, трябва да изтеглим библиотеката от http://www.grocerycrud.com/downloads
След като го изтеглите, разархивираме и копираме файловете

Няма да описваме подробно как да конфигурирате Codeigniter вместо това ще се съсредоточим върху директната употреба. Да предположим, че имаме база данни с имоти, чиито таблици са имоти, потребители, градове, градове, провинции, типове имоти и тип операция, ако се продава или дава под наем.

За да генерираме суровината на таблицата с недвижими имоти, ще създадем контролер, наречен недвижими имоти, със следния код
 зареждане-> база данни (); $ this-> load-> library ('grocery_CRUD');} индекс на публична функция () {$ crud = new grocery_CRUD (); $ crud-> set_theme ('datatables'); $ crud-> set_table ('свойства'); $ crud-> колони ('userid', 'id на свойството тип', 'цена'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}
Извикваме библиотеката на базата данни и библиотеката grocerycrud след това задаваме темата или дизайна, които искаме да използваме за решетката, задаваме таблицата да се показва и посочваме кои колони или полета ще се показват, като задаваме полетата на таблицата, които искаме да се показват, генерираме всичко с функцията render () и го запазваме в променлива, която изпращаме на изгледа. След това създаваме изгледа, който наричаме недвижими имоти list.php
 
В изгледа ще трябва да покажем css и js, необходими за работата му, местоположението на файловете вече е определено от шаблона, в този случай решихме да използваме шаблона данни които можем да намерим в директорията на шаблони:
 / assets / grocery_crud / themes / datatables /
Ако тестваме нашето приложение, резултатът ще бъде следният:

Увеличете

Виждаме как цялата мрежа е генерирана с малко код, сега ще видим как да добавим и подобрим функционалностите. Например колоните с идентификатори можем да променим името и също така вместо да се появи идентификационният номер на свързаните данни, бихме искали някои по -значими данни, например вместо потребителския идентификатор се появява името и вместо idtipoinmueble, който показва какъв тип е ако е дом, офис и т.н. За това трябва да направим някои промени в контролера.
За да променим името на колона, правим следното в контролера, който използваме display_as (текущо име, ново име)
 $ crud-> колони ('userid', 'id на свойството тип', 'цена'); $ crud-> display_as ('потребителски идентификатор', 'Потребител'); $ crud-> display_as ('id на свойство тип', ' Тип на имота ');
За да покажем данните вместо идентификатора, трябва да посочим с set_subjet (свързана таблица) и set_relation (релационен идентификатор, свързана таблица, свързана с полета таблица)
 $ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // идентификаторът е този от базата данни, която показвам, тоест връзка в недвижими имоти $ crud -> set_relation ('property_type', 'property_type', 'name');
След това опресняваме страницата, за да видим промените с кода, който добавихме:

Нека да видим как се генерира регистрацията или промяната на данните, от полетата на структурата на таблицата се генерира формулярът за регистрация на данни. Някои могат да ги конфигурират според типа данни, други трябва да посочим какъв тип данни и елемент на формуляр трябва да бъдат присвоени.

Виждаме, че полетата от тип текст стават textarea и се добавя плъгинът cfkeditor, можем да го видим на уебсайта ckeditor.com, полетата за дата стават datepicker, свързаните полета ще станат комбинации или падащи елементи за избор.
Важен аспект е как да валидираме данните, които регистрираме, за това трябва да използваме функцията required_fields (field), затова в контролера можем да добавим следния код, за да потвърдим, че е задължително поле.
 $ crud-> required_fields ('userid', 'price');
Можем също така да установим типа данни, които ще потвърдим с функцията set_rules
 $ crud-> set_rules ('цена', 'Наемна цена', 'числова'); $ crud-> set_rules ('имейл', 'Потребителски имейл', 'имейл');
По този начин той ще посочи под формата при изпращане, ако има грешка:

В допълнение към данните, които можем да въведем, в този случай трябва да качим графични файлове на свойствата, за тях трябва да използваме функцията set_field_upload ('поле,' директория '), по подразбиране можем да използваме директорията активи / качвания / файлове, който вече включва grocerycrudВ противен случай можем да конфигурираме наши собствени.
 $ crud-> set_field_upload ('изображение1', 'активи / качвания / файлове'); $ crud-> set_field_upload ('изображение2,' активи / качвания / файлове '); $ crud-> set_field_upload ('изображение3', 'активи / качвания / файлове'); $ crud-> set_field_upload ('изображение4', 'активи / качвания / файлове');

Как да направите многоезична мрежа с данни
Вътре в директорията / assets / grocery_crud имаме директорията Езици с всички преводи на всеки език на интерфейса, който показва мрежата,
Можем да преминем към конфигурацията от директорията application / config / grocery_crud.php и посочете езика по подразбиране, който искаме да използваме в езиковата конфигурация.
 $ config ['grocery_crud_default_language'] = 'испански';
Ако искаме да го направим динамично, например чрез меню за избор на език от мрежата, добавяме езика към нашия код
 $ crud-> set_language ("английски").
Премахване на функционалности от мрежата
Една от възможностите е да премахнем функционалности, които не искаме да се показват, или да забраним полетата за това, което ще използваме един комплект и различните му възможности unset_add, unset_edit, unset_delete и unset_list
Така например, ако използваме $ crud-> unset_edit (); бутонът за редактиране няма да се появи в списъка, ако използваме $ crud-> unset_texteditor ('описание'); текстовото поле, съответстващо на описанието, няма да използва плъгина cfkeditor. Ако искаме само да покажем списък, без да можем да извършим никаква операция, различна от търсенето, използваме функцията.
 $ crud-> unset_operations ();
Как да извикате функция от събитие
Grocerycurd ни позволява да обработваме обратни извиквания, тоест да извикваме функция преди, по време или след настъпване на събитие. Няколко примера. Ако искаме да добавим обратно повикване, когато формулярът се генерира и засяга определено поле, ще използваме следната функция:
 $ crud-> callback_add_field ('имейл', масив ($ this, 'промяна на цвета'));
След това в контролера дефинираме функцията, която извикваме при обратното повикване
 промяна на цвета на функцията () {return '';}
Ако искаме да манипулираме която и да е колона, ще използваме следното:
 код $ crud-> callback_column ('цена', масив ($ this, 'allocatecurrency')); функция allocatecurrency ($ стойност, $ ред) {връщане $ стойност. ' € ';}

Можем да използваме и обратното повикване, преди да вмъкнем или запазим данни:
 $ crud-> callback_before_insert (масив ($ this, 'Calcu_total));
Има много други събития, за които да се извикат обратни обаждания, за които можем да се консултираме на уебсайта Суровина за хранителни стоки. Други помощни програми, които има, са възможността за експортиране в excel и отпечатване на мрежата с нейните данни, ако искаме да добавим бутон с допълнителна функционалност, като например експортиране в pdf, трябва да променим кода на шаблона, който се намира в директорията активи \ grocery_crud \ themes \ mypantilla \ views, в директорията на шаблона, който използваме, променяме файловете list_template.php и добавяме това, от което се нуждаем.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave