Установите и настройте панель администратора Voyager для вашего Laravel 7 API.

Это руководство подразумевает…

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

Если вы хотите создать свой API с помощью Laravel и получить четкую отправную точку, вы можете следовать этому замечательному руководству (разработан для Laravel 5.4, но отлично работает с Laravel 7.x)

Что такое панель администратора Voyager для Laravel

При создании API с Laravel может быть полезно иметь возможность управлять данными, которые вы обрабатываете.

Самый простой способ сделать это - использовать консоль MySql для SELECT, UPDATE, INSERT и DELETE данных. Однако использовать для этого терминал неудобно; Вы должны запомнить и ввести правильные команды, вы можете столкнуться с ошибками форматирования из-за размера ваших таблиц и т. Д.

Следующий метод, который вы можете использовать, который немного более удобен для пользователя, - это PhpMyAdmin. Очень полезно управлять структурой базы данных вашего API, поскольку теперь у нас есть графический интерфейс с флажками, кнопками и списками вместо командных строк. Но по-прежнему довольно неэффективно управлять самими данными, а также пользователями, имеющими доступ к этой панели администратора.

Voyager для Laravel идет еще дальше и предоставляет вам современную и отзывчивую панель администратора, похожую на PhpMyAdmin, с поддержкой BREAD / CRUD и точным контролем доступа пользователей к вашему Laravel API.

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

Вот некоторые из его лучших функций:

  • Современный, очень красивый и отзывчивый пользовательский интерфейс.
  • Готовое управление данными (поддержка BREAD / CRUD)
  • Отношения таблиц без кода
  • Управление доступом пользователей, которое может быть расширено на весь API с поддержкой Passport
  • Возможность настроить панель для других функций администратора

Если вы хотите проверить другие функции, посетите их веб-сайт и страницу Github.

Установите Voyager для Laravel

Теперь, когда мы знаем, для чего нужен Voyager, мы установим его в существующий Laravel API.

Установка Voyager - это 4-х шаговый процесс, я предлагаю вам взглянуть на документацию для более подробной информации.

1) Установите пакет с помощью композитора:

composer require tcg/voyager

2) Добавьте сведения о Mysql в свой .env файл:

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

И добавьте или измените следующую строку с URL-адресом вашего веб-сайта.

APP_URL=http://localhost:8000

3) Запустите установщик:

php artisan voyager:install

4) Назначьте или создайте пользователя с правами администратора:

Если у вас уже есть пользователь, которого вы хотите сделать администратором

php artisan voyager:admin [email protected]

Если вы хотите добавить нового пользователя с ролью администратора

php artisan voyager:admin [email protected] --create

Теперь все готово! Вы можете перейти в новый интерфейс администратора, добавив /admin к корневому URL-адресу, как определено выше (например, http: // localhost: 8000 / admin).

Настройте Voyager для Laravel

Теперь, когда у нас есть рабочая панель администратора Voyager, мы рассмотрим простейшую и в то же время лучшую функцию Voyager; готовая поддержка BREAD / CRUD.

Что такое ХЛЕБ / ХЛЕБ

Как мы можем прочитать в Википедии, CRUD означает C reate, R ead, U pdate и D елете . Четыре простых действия, которые мы можем использовать вместе, чтобы делать с нашими данными все, что захотим.

С ХЛЕБ (B строк, R, E dit, A dd, D elete) мы должны просто посмотреть на B, поскольку R, E, A и D являются синонимами CRUD. B для просмотра - это список данных на основе критериев фильтрации, а не чтение определенного.

API, подобный тем, которые мы создаем с Laravel, предназначен для выполнения этих пяти простых действий.

Добавить ХЛЕБ в существующий стол

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

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

Итак, нам нужна страница в нашей панели администратора, на которой перечислены все артисты с элементом управления BREAD, где owner_id заменяется фактическим именем пользователя, как это:

Voyager настолько хорошо сделан, что при добавлении или редактировании модели столбец, посвященный связанным данным, фактически ИСПОЛЬЗУЕТ данные отношений. Как в этом примере, где вы можете назначить поиск пользователя по его имени:

Что лучше, чем PhpMyAdmin!

Добавьте элемент ХЛЕБ в свой стол

Для начала посетите страницу ХЛЕБ, расположенную в меню Инструменты. Найдите таблицу, в которую вы хотите добавить элемент управления ХЛЕБ, и нажмите кнопку «Добавить ХЛЕБ в эту таблицу».

Вы будете перенаправлены на страницу конфигурации BREAD вашей таблицы.

В этой части менять нечего. Просто убедитесь, что «Название модели» соответствует вашему фактическому названию модели, поскольку Voyager использует стандартную номенклатуру Laravel, поэтому, если название вашей модели отличается от того, что предлагает Voyager, просто измените его на правильное имя.

В нижней половине страницы ХЛЕБ вы найдете список столбцов вашей таблицы с видимостью, типом ввода, отображаемым именем и дополнительными сведениями.

На данный момент вы можете просто изменить отображаемые имена столбцов и нажать кнопку «Отправить», чтобы создать страницу Artistes. У вас появится новая ссылка в левом меню, щелкните по ней, чтобы найти почти ту же страницу, что и показано выше.

Обратите внимание, что на данный момент у вас есть столбец owner_id с идентификатором связанного пользователя вместо имени пользователя, как в моем.

Добавьте связь с контроллером ХЛЕБа

Будьте осторожны: отношения можно добавить только после создания страницы ХЛЕБ. Вы должны отправить свою страницу ХЛЕБ и вернуться, чтобы установить отношения.

Чтобы отображать имя пользователя вместо его идентификатора, нам нужно определить отношения между нашими таблицами (артистами и пользователями) и указать Voyager, чтобы он отображал имя пользователя вместо идентификатора.

Для этого вернитесь к администратору ХЛЕБА (в меню Инструменты) и отредактируйте ХЛЕБ Артиста.

Вернитесь к администратору BREAD артистов, под списком столбцов нажмите кнопку «Создать отношения».

Откроется всплывающее окно, заполните его, как на изображении ниже.

Если вы создаете Laravel API, есть вероятность, что вы уже знаете, что такое Relationship и как определить его с помощью номенклатуры Laravel, но в случае, если это неясно, давайте проанализируем эту форму:

  1. «Принадлежит»: мы сообщаем «Вояджеру», что наша артистическая модель принадлежит другой модели.
  2. В нашем случае таблица связанной модели называется «Пользователь», но если вы нажмете это поле выбора, вы найдете все остальные таблицы Mysql, из которых вы можете выбрать.
  3. Затем мы даем ей имя нашей связанной модели, чтобы «Вояджер» мог использовать ее для доступа к своим данным. В нашем случае «Приложение \ Пользователь»
  4. Затем мы сообщаем Voyager, какой столбец из модели Artiste соответствует идентификатору пользователя. В моем случае у моего артиста есть столбец «Owner_id».
  5. Затем мы говорим Voyager отображать имя пользователя вместо идентификатора и использовать идентификатор для заполнения столбца Owner_id при создании или редактировании артиста.

Очень просто, не правда ли? Теперь просто нажмите «Добавить новое отношение», затем нажмите «Отправить», чтобы сохранить изменения.

Вернитесь на страницу администратора Artistes, вы увидите, что Voyager автоматически скрывает столбец Owner_id и вместо этого отображает связанного пользователя по его имени.

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

Вы можете воспроизвести эти шаги для всех ваших моделей и всех ваших отношений, чтобы настроить панель администратора. Voyager поддерживает все типы отношений Laravel (ownTo, hasOne, hasMany, ownToMany).

Это значительно упростит управление вашими данными!

Идти дальше

С Voyager for Laravel можно сделать гораздо больше, чем просто BREAD и Relationships.

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

Спасибо за чтение !

Спасибо всем, кто следил за этим руководством.

Не стесняйтесь присылать мне свои отзывы и идеи в комментариях.