Меню

Crud генератор что это

Laravel принцип создания CRUD с минимальным колличеством кода

В данном уроке мы с вами научимся создавать простой CRUD на Laravel 5.4 на примере заметок, а заодно и оптимизировать код. Тут будут использованы некоторые ухищрения которые заметно стали экономить мне время при создании приложений на Laravel.

Роуты

Давайте начнём с создания роутов. Поскольку это CRUD соответственно у нас должно быть 7 роутов типа:

Для тех кто не в курсе роуты прописываются в файле routes/web.php

Но право же, для каждой сущности плодить по 7 роутов это неслыханное кощунство! Да и тем более таких типичных. Давайте мы научимся записывать их все одной строкой, вот так например:

И всё! Больше нам ничего писать в роутах не нужно, потому, что они сами создадутся. Не верите? Давайте сами в этом убедимся. Вам всего лишь нужно запустить в терминале команду: php artisan route:list что бы увидеть все доступные пути в текущем приложении.

Должно получится вот такое великолепие со всеми путями алиасами и методами:

Ну осталось только взять да и создать модель, контроллер и все эти методы.

Модель

Теперь давайте создадим модель и миграцию для неё. Для создания модели воспользуйтесь командой в терминале:

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

Теперь вы можете перейти в папку database/migrations и там найдёте ваш новенький файл миграции create_notes_table.php. Теперь найдите в данном файле вот такие строчки создающие обязательные поля:

Давайте немного расширим нашу будущую таблицу добавив в неё поля title и body:

Всё можно выполнять миграцию:

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

Контроллер и представления

В контроллере нам необходимо будет описать все доступные нам методы которые нам создал роутер.

Итак за показ всех доступных заметок у нас будет отвечать метод index()

Как вы видите здесь мы просто получаем все объекты нашего класса Note

Ну и давайте по быстрому сюда прикрутим вьюшку. Да кстати что бы не засорять папку Views рекомендую для всех типов создавать свои подпапки в нашем случае это будет папка note и в ней вложенный файл index.blade.php у меня получился приметрно такой вид:

Валидация и ошибки

Для того чтобы организовать валидацию подключите в контроллере класс валидации

Затем внутри класса контроллера укажите глобальное использование класса валидации

Теперб внутри нашего метода Store можно использовать вот такой простой набор валидаций:

Осталось лишь в вывести в шаблоне блок с ошибками например в лайоуте, что бы они были доступны во всех шаблонах:

Источник

Пример CRUD на Laravel 8 | Руководство по Laravel 8 для начинающих

В этом руководстве мы поэтапно рассмотрим пример CRUD-приложения на Laravel 8. CRUD – это аббревиатура для «создать, прочесть, обновить, удалить» (от английских слов create, read, update, delete). Операции CRUD – это базовые функции, используемые при работе с данными и базой данных. Эта статья описывает CRUD-приложение на Laravel, которое будет выполнять все эти операции в одном месте — в таблице базы данных MySQL.

Мы объясним, как работает CRUD-операция на Laravel 8, и усовершенствуем простой и лучший способ научиться создавать, обновлять, удалять и редактировать с помощью базы данных. Прежде чем начать работать с Laravel 8 с нуля, новичок должен разбираться в таких вещах как: контроллер, маршруты, модальные окна, миграции и создание макетов тем в Laravel. Если вы все это уже знаете, давайте перейдем к примеру пошагового процесса CRUD на Laravel 8, начиная с азов.

Шаг 1: Установите приложение Laravel 8

Для начала создайте новый проект в Laravel 8, добавив следующую команду в терминал.

Шаг 2: Настройте базу данных MySQL

Теперь нужно создать базу данных MySQL и подключить эту базу данных к приложению Laravel. Откройте localhost/phpmyadmin и добавьте новое имя базы данных, затем добавьте учетные данные в файл .env, который отображается в корне вашего проекта.

Теперь вы сможете добавлять таблицы с помощью базы данных MySQL.

Шаг 3: Создайте модальное окно и миграцию

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

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

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

Добавьте свойство fillable : Внутри вашего приложения/модального окна сгенерирован файл Post.php, в который вам нужно добавить свойства fillable.

Шаг 4: Добавляем маршруты к источникам

В Laravel 8 в разделе маршрутов появились некоторые изменения: вам нужно использовать свой контроллер, а затем инициализировать класс контроллера. Откройте файл «routes / web.php» и укажите маршруты, как показано ниже.

Шаг 5: Создайте контроллер

Теперь вам нужно создать контроллер, просто добавив указанную ниже команду, и сгенерировать новый контроллер ресурсов – PostController.

После выполнения данной команды вы найдете новый файл по следующему пути: «app / Http / Controllers / PostController.php». Там вы увидите уже сформированные методы, такие как показано ниже. Теперь вам нужно добавить следующие коды в ваши функции:

1) index() => этот метод предоставляет вам все данные из базы данных.

2) create() => это метод для создания новой записи.

3) store() => этот метод хранит данные в вашей базе данных.

3) show() => этот метод показывает запись.

3) edit() => используя этот метод, мы можем отредактировать нашу запись.

3) update() => это метод для обновления записи.

7) destroy() => используя этот метод, мы можем удалить нашу запись.

Теперь откройте файл PostController.php и добавьте в него приведенный ниже код.

Шаг 6: Создайте файлы blade

На этом этапе, мы создаем наши файлы просмотра. Для начала создайте две папки: первая – «макет», а вторая – «записи». В папке макета создайте файл app.blade.php, а внутри папки записей создайте ещё один файл blade. Если вы не знаете, как интегрировать наши blade-файлы в Laravel, то сначала прочитайте Как интегрировать шаблон Bootstrap в админ-панели Laravel. Теперь создайте следующие blade-файлы для вашего CRUD-приложения.

  1. layout.blade.php
  2. index.blade.php
  3. create.blade.php
  4. edit.blade.php
  5. show.blade.php

Теперь давайте создадим следующие файлы и вставим в них соответствующий код.

Ну, вот мы и подошли к концу нашего пошагового руководства по работе с CRUD в Laravel 8. В рассмотренном нами CRUD-приложении мы использовали одну функцию для создания и редактирования. Давайте запустим этот пример CRUD-приложения. Примените приведенную ниже команду и посмотрите в свой браузер.

Теперь вы можете открыть в своем браузере следующий URL-адрес: http: //localhost:8000/posts. Итак, друзья, это очень простой пошаговый способ работы с CRUD на фреймворке Laravel.

Надеюсь, это руководство поможет вам разобраться с CRUD на Laravel 8. Если у вас есть какие-либо вопросы относительно генератора операций CRUD на Laravel, пожалуйста, оставьте комментарий к этой статье, мы очень ценим ваше мнение.

Источник

Генерация каркаса

Create, read, update и delete (CRUD) — четыре основных операции, при помощи которых можно управлять объектами данных. Так как реализация CRUD является типичной задачей для любого веб-приложения, для автоматизации можно воспользоваться специальными инструментами для генерации кода Gii (также известным как скаффолдинг).

Примечание: Gii доступен начиная с версии 1.1.2. До этого мы бы использовали yiic shell.

Далее мы опишем как использовать данный инструмент для реализации операций CRUD записей и комментариев нашего блога.

1. Установка Gii ¶

Для начала необходимо установить Gii. Открываем файл /wwwroot/blog/protected/config/main.php и добавляем следующее:

Код выше включает модуль с именем gii , который позволяет нам использовать Gii по следующему URL:

Будет запрошен пароль, который мы указали в /wwwroot/blog/protected/config/main.php . После этого будет показана страница со всеми доступными инструментами генерации кода.

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

2. Создание моделей ¶

Для начала нам необходимо создать классы моделей для каждой из таблиц в БД. Эти классы позволят нам работать с БД в стиле ООП, что будет показано далее в данном руководстве.

Запускаем Model Generator . На странице вводим tbl_user (имя таблицы, хранящей пользователей) в поле Table Name , tbl_ в поле Table Prefix и нажимаем кнопку Preview . Будет показана таблица, ссылки в которой позволят просмотреть код, который мы собираемся сгенерировать. Если всё в порядке, можно нажимать Generate . При этом код будет сохранён в файл.

Информация: Так как генератору кода необходимо сохранить код в файлы, процесс должен иметь права на создание и изменение соответствующих файлов. Проще всего дать процессу права на запись во всю директорию /wwwroot/blog . Стоит отметить, что это требуется сделать только на машине разработчика при использовании Gii .

Повторим те же действия для всех остальных таблиц БД, включая tbl_post , tbl_comment , tbl_tag и tbl_lookup .

Подсказка: Также мы можем ввести * в поле Table Name . Так мы сгенерируем модели для каждой таблицы БД за один раз.

На данном этапе у нас будут созданы следующие файлы:

  • models/User.php содержит класс User , который наследуется от CActiveRecord и может использоваться для обращения к таблице tbl_user ;
  • models/Post.php содержит класс Post , который наследуется от CActiveRecord и может использоваться для обращения к таблице tbl_post ;
  • models/Tag.php содержит класс Tag , который наследуется от CActiveRecord и может использоваться для обращения к таблице tbl_tag ;
  • models/Comment.php содержит класс Comment , который наследуется от CActiveRecord и может использоваться для обращения к таблице tbl_comment ;
  • models/Lookup.php содержит класс Lookup , который наследуется от CActiveRecord и может использоваться для обращения к таблице tbl_lookup .

3. Реализация операций CRUD ¶

После того, как были созданы классы модели, мы можем использовать Crud Generator для генерации кода операций CRUD для них. Сделаем это для моделей Post и Comment .

На странице Crud Generator введём Post (имя модели записи блога, которую мы создали ранее) в поле Model Class и нажмём Preview , а затем Generate .

Повторим эти же действия для модели Comment .

Рассмотрим сгенерированные файлы в /wwwroot/blog/protected . Для удобства сгруппируем их в файлы контроллеров и файлы представлений:

  • Controllers/PostController.php содержит класс PostController , который является контроллером, отвечающим за все операции CRUD для записей;
  • Controllers/CommentController.php содержит класс CommentController , который является контроллером, отвечающим за все операции CRUD для комментариев;
  • views/post/create.php — файл представления, который показывает HTML-форму для создания записи;
  • views/post/update.php — файл представления, который показывает HTML-форму для обновления записи;
  • views/post/view.php — файл представления, который отображает подробную информацию записи;
  • views/post/index.php — файл представления, который отображает список записей;
  • views/post/admin.php — файл представления, который отображает записи в таблице с административными командами.
  • views/post/_form.php — частичный файл представления, используемый в views/post/create.php и views/post/update.php . Он отображает HTML-форму для сбора информации о записи.
  • views/post/_view.php — частичный файл представления, используемый в views/post/index.php . Он отображает краткий вид отдельной записи.
  • views/post/_search.php — файл представления, используемый в views/post/admin.php . Используется для формы поиска.
  • Подобный набор файлов представлений также сгенерирован для комментариев.

4. Тестирование ¶

Мы можем проверить работу сгенерированного кода, используя следующие URL:

Стоит отметить, что возможности по управлению записями и комментариями полностью независимы. Также, при создании новой записи или комментария необходимо вводить такие данные, как author_id и create_time , что в реальном приложении должно делаться автоматически. Не беспокойтесь, мы исправим эти проблемы далее. На данный момент прототип уже содержит большинство возможностей, необходимых нашему блогу.

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

Источник

Генерация кода при помощи Gii

В этом разделе мы опишем, как использовать Gii для автоматической генерации кода, реализующего некоторые общие функции вебсайта. Для достижения этой цели всё, что вам нужно, это просто ввести необходимую информацию в соответствии с инструкциями, отображаемыми на веб-страницах Gii.

В этом руководстве вы узнаете:

  • Как активировать Gii в приложении;
  • Как использовать Gii для создания Active Record класса;
  • Как использовать Gii для генерации кода, реализующего CRUD для таблицы БД.
  • Как настроить код, генерируемый Gii.

Запускаем Gii #

Gii представлен в Yii как модуль. Вы можете активировать Gii, настроив его в свойстве modules. В зависимости от того, каким образом вы создали приложение, вы можете удостовериться в наличии следующего кода в конфигурационном файле config/web.php ,

Приведенная выше конфигурация показывает, что находясь в режиме разработки, приложение должно включать в себя модуль с именем gii , который реализует класс yii\gii\Module.

Если вы посмотрите входной скрипт web/index.php вашего приложения, вы увидите следующую строку, устанавливающую константу YII_ENV_DEV в значение true .

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

Note: Если вы пытаетесь получить доступ к Gii не с локального хоста, по умолчанию, в целях обеспечения безопасности, доступ будет запрещён. Вы можете изменить настройки Gii, чтобы добавить разрешённые IP адреса, как указано ниже

Генерация класса Active Record #

Чтобы использовать Gii для генерации класса Active Record, выберите «Генератор модели» (нажав на ссылку на главной странице Gii). И заполните форму следующим образом:

  • Имя таблицы: country
  • Класс модели : Country

Затем нажмите на кнопку «Предварительный просмотр». Вы увидите, что models/Country.php перечислен в результатах создаваемых файлов классов. Вы можете нажать на имя файла класса для просмотра его содержимого.

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

Для перезаписи существующего файла установите флажок рядом с «overwrite» и нажмите кнопку «Generate». Для создания нового файла вы можете просто нажать «Generate».

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

Создание CRUD кода #

CRUD расшифровывается как Create, Read, Update и Delete, предоставляющий четыре основные функции, выполняемые над данными на большинстве веб-сайтов. Чтобы создать функциональность CRUD используя Gii, выберите «CRUD Генератор» (нажав на ссылку на главной странице Gii). Для нашей таблицы «country» заполните полученную форму следующим образом:

  • Model Class: app\models\Country
  • Search Model Class: app\models\CountrySearch
  • Controller Class: app\controllers\CountryController

Затем нажмите на кнопку «Preview». Вы увидите список файлов, которые будут созданы, как показано ниже.

Если вы уже создали файлы controllers/CountryController.php и views/country/index.php (в разделе о базах данных), установите флажок «overwrite», чтобы заменить их. (Предыдущие версии не поддерживают CRUD полностью)

Испытываем в действии #

Чтобы увидеть как всё это работает, перейдите по следующему URL, используя ваш браузер:

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

Для каждой отображающейся в таблице страны вы можете просмотреть подробную информацию, обновить или удалить её. Вы также можете нажать на кнопку «Создать страну» в верхней части таблицы для получения формы создания новой страны.

Ниже приведен список файлов, созданных с помощью Gii, в том случае, если вы захотите исследовать реализацию этих функций, или изменить их:

  • Контроллер: controllers/CountryController.php
  • Модели: models/Country.php и models/CountrySearch.php
  • Вид: views/country/*.php

Info: Gii разработан как тонконастраиваемый и расширяемый инструмент генерации кода. Используя его с умом, вы можете значительно ускорить скорость разработки приложений. Для более подробной информации, пожалуйста, обратитесь к разделу Gii.

Заключение #

В этом разделе вы узнали, как использовать Gii для генерации кода, реализующего полную функциональность CRUD для данных, хранящихся в таблице базы данных.

Источник

Adblock
detector