nova laravel что это

Представляем: Laravel Nova

Мы очень рады объявить Laravel Nova, «красиво разработанную панель администрирования для Laravel», созданную командой Laravel.

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

За неделю до написания этой статьи мне показалось, что мне нужна логика интерфейса и бэкэнд для управления красноречивыми моделями. С Nova, поскольку это composer пакет, вы можете установить его в существующий проект Laravel 5.6, который вы уже создали. Удивительно, если вы думаете об этом, это означает, что вам не нужно начинать с того, чтобы интегрировать управление ресурсами в ваше приложение.

Чтобы дать вам краткий обзор, на высоком уровне Nova предлагает:

Управление ресурсами

В основе Nova лежит управление ресурсами: возможность создавать, читать, обновлять и удалять ресурсы. Nova охватывает не только базовое управление ресурсами, но и такие вещи, как обновление данных о таких вещах, как полиморфные отношения.

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

Nova имеет базовые типы полей, а также пользовательские типы, такие как Markdown, Trix, Code и Place.

Поиск

Nova включает функции поиска по SQL-запросам по умолчанию, а также легко интегрируется с Laravel Scout, если ваше приложение использует скаут.

Действия, фильтры и линзы

Фильтры позволяют вам обладать ресурсами для запросов индекса для таких вещей, как «активные пользователи» или «приостановленные учетные записи». Подобно действиям фильтры определяются как простые классы PHP, которые позволяют вам охватить ваши запросы с помощью построителя запросов. Фильтры доступны из индексного представления данного ресурса, а также при отображении в качестве отношения.

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

Метрика

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

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

Авторизация

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

Читайте так же

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

Источник

Локализация Laravel nova или как сломать себе мозг от желаний заказчика

Введение

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что этоlaravel nova icon

Основные проблемы

Задавшись этой сложной задачей передо мной встало несколько проблем:

Хранения данных полей админ панели

Добавление языков

Самое простое в локализации laravel nova это хранение языков. Так мне необходимо было создать хранилище языков с возможностью добавления. Я создал таблицу для хранения и ресурс nova.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Хранения данных полей админ панели

Так все основные поля nova хранятся в директории resources/lang/vendor/nova в json файлах имеющих в качестве названия ключ языка. Мне пришла идея создать новую таблицу для хранения данных локализации и создать observer который будет брать существующий файл json laravel и дополнять его информацией при сохранении с таблицы.

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

Для того чтобы для каждого поля не писать в ресурсе для каждого необходимого поля свое поле для отображения, я решил собрать все необходимые мне ключи локализации в константу массива, с генерировать текстовые поля в массиве и поместить их в поле armincms/json (https://github.com/armincms/json).

После того как всё это проделано оставалось настроить сохранение в json файлы nova используя observer. Написав рекурсивную замену значений json файла я добился успеха.

Сессии и переключатель языков

Посидев над проблемой два дня мне всё таки удалось прикрутить сессии и настроить шаблон resources/views/vendor/nova/partials/user.blade.php

user.blade.php

LanguageController.php

LanguageMiddleware.php

В конце нужно добавить класс в Kernel:

Так же можно это использовать заменив получение языков из контроллера, на получение языков из конфига.

В конечном результате у меня вышел функционал, с добавлением языков и переводов в административную панель и переключением языков админки с сессиями.

Источник

Совет ТОП-10 самых важных пакетов Laravel Nova

На самом деле, даже если существуют сотни пакетов Laravel Nova, я не думаю, что они настолько полезны. Но они могут облегчить вашу жизнь, и они могут даже быть требованием вашего клиента. Поэтому я постараюсь сэкономить вам время, если вы ищете лучшие пакеты Laravel Nova, и подскажу те, которые вам понадобятся больше всего.

На данном этапе нет необходимости в более подробном рассказе, давайте просто перейдем к списку!

10. Advanced Nova Media Library​

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Пока вы ждете, когда Spatie выпустит свой официальный пакет, чтобы перенести библиотеку медиа в Laravel Nova, вы можете попробовать этот!

У вас есть модель, которая принимает коллекцию изображений, и вы хотите иметь возможность загружать несколько изображений для этой модели в Nova? Advanced Nova Media Library для вас

9. Импорт и Экспорт с Excel​

8. Фильтрация по диапазону дат​

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

7. Log Viewer​

Очевидно, это самый лучший пакет Log Reader для Laravel Nova на сегодняшний день. Если вам недостаточно Bugsnag, Honeybadger, Rollbar или Sentry, то вам, вероятно, придется время от времени вручную проверять файл журнала на вашем сервере.

6. Предварительное заполнение доступное для поиска​

Если вы используете поле «Отношения с возможностью поиска» в Laravel Nova, вы, вероятно, разочарованы тем, что загрузка списка с возможностью поиска занимает некоторое время. Этот пакет поможет вам предварительно заполнить это поле.

5. Уникальное поле Ajax​

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

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

4. Счетные поля​

Некоторое очень небольшое улучшение, которое можно было бы предложить прямо из коробки и в Laravel Nova.

3. Поле тегов​

2. Кэш-карта​

Мертвый простой пакет, который отображает карту диспетчера кэша на панели управления.

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

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

Просто так случается, что иногда ваш клиент говорит: «Привет, я обновил эту запись, но я не вижу ее в интерфейсе». Затем вы используете ssh на своем сервере и очищаете кэш своего приложения, потому что вы забыли реализовать механизм очистки в нужном месте.

Больше не надо! Теперь ваш клиент может сам очистить кэш!

1. Кассир менеджер​

Очевидно, это необходимо для вас, только если вы используете Laravel Cashier. Но черт возьми, это впечатляющий пакет! Все прямо здесь, и вам больше не нужно заходить в панель инструментов Stripe!

Самый впечатляющий и полезный пакет, который я когда-либо использовал.

Бонус ​

BelongsTo Зависимость​

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

Horizon Статистика​

Проверьте свой экземпляр Horizon на панели инструментов, даже не открывая панель инструментов Horizon!

Google Analytics​

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

Источник

Знакомство с Laravel Nova

Nova — это панель администрирования для Laravel. В этом посте будут рассмотрены ключевые особенности Nova.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Nova устанавливается через Composer как пакет Laravel и это не помешает существующему приложению. Фактически, вы можете установить Nova в любые существующие приложения на основе Laravel 5.6.

Интерфейс Nova разработан с использованием Vue.js, Vue Router и Tailwind.css, что обеспечивает мощную гибкую сборку, особенно в плане настройки и создания пользовательских инструментов, карточек и полей.

Каждая модель Eloquent в приложении имеет соответствующий класс ресурсов Nova, в котором определены поля, действия, фильтры, объективы и карточки. Nova полностью настраивается с использованием простых PHP-классов, а конфигурация не хранится в базе данных, что обеспечивает лёгкую переносимость админки между окружениями.

Управление ресурсами

Конечно, основной особенностью Nova является возможность создавать, просматривать, редактировать и удалять ресурсы в базе данных. Разработчики упорно трудились, чтобы покрыть все кейсы связанные с подобными задачами. Нужна ли поддержка обновления данных в таблице intermediate / pivot полиморфного отношения «многие ко многим»? В Nova всё это реализовано. Nova имеет прекрасную поддержку для всех типов отношений Eloquent.

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

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Nova имеет поддержку множества типов полей. Как основные, такие как текст, логические значения, числа, загрузка файлов и даты. Однако дополнительные поля, такие как Markdown, Trix, Code и Place, улучшают работу с Nova.

Поиск

По умолчанию Nova использует SQL-запросы для поиска ресурсов; однако, если ваше приложение использует Laravel Scout, Nova плавно и разумно предпочитает использовать поисковые запросы Scout, предоставляя вам полную мощность истинной поисковой системы, такой как Algolia.

Конечно, поиск доступен по индексам ресурсов и индексам отношений, но он также доступен при объединении ресурсов. Например, при создании ресурса «Post», принадлежащего «User», Nova обеспечивает быстрый поиск пользователей:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Nova также включает красивый глобальный компонент поиска, который может искать по всем вашим типам ресурсов с гиперкосмической-скоростью:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Действия

Действия — это простые PHP-классы, которые выполняют задачи с ресурсом или группой ресурсов. Каждое действие содержит метод handler, который получает все входящие поля для действия и коллекцию моделей.

У вас есть какое-то действие, для выполнения которого требуется некоторое время? Nova может поставить его в очередь с помощью встроенной службы очередей Laravel:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

После того, как действие определено и привязано к ресурсу, оно сразу же становится доступно для запуска через пользовательский интерфейс:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Добавив в модель трейт «Actionable» идущий в поставке Nova, вы получаете « audit trail » всех действий, которые были выполнены для ресурсов из Nova, с указанием тех, кто их вызвал:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Все даты в пользовательском интерфейсе Nova автоматически, разумно локализуются в часовом поясе пользователя. Для пользователей из Европы время будет показано в формате 24-часов и в нужном часовом поясе.

Фильтры

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

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Как только фильтр будет определён и присоединён к ресурсу, он может быть включен через индекс этого ресурса. Фильтры могут применяться к основному индексу ресурса, а также в любое время, когда этот ресурс отображается как отношение:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Объективы

Объективы позволяют создать совершенно другой подход к просмотру ресурсов. Например, ресурс «User» может иметь объектив «Самый ценный пользователь», который отображает пользователей и их общие покупки за всё время, отсортированные по пользователями, которые принесли наибольший доход. В классе объективов вы имеете полный контроль над построением базового запроса:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Каждый объектив может определять собственный набор полей, которые полностью отделены от самого ресурса:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Как только объектив был определён и привязан к ресурсу, к нему можно получить доступ через индекс этого ресурса:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Метрики

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

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

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Но вы не ограничены простым подсчётом. Вы также можете легко просмотреть среднее значение, сумму, минимум или максимум заданного атрибута с течением времени. После того, как мы зарегистрировали этот показатель с ресурсом, он будет отображаться в основном индексе этого ресурса:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Так же легко создавать красивые «трендовые» показатели. Всё, что требуется, это одна строка кода:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

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

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Авторизация

Nova прекрасно интегрируется с системой авторизации и политиками Laravel. Используйте возможности Laravel, с которыми вы уже знакомы. У вас есть полный контроль над тем, кто может просматривать, создавать, редактировать или удалять ресурсы. Если базовая модель Eloquent имеет соответствующую политику, Nova автоматически использует её для авторизации действий ресурсов.

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

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Настройка

Почти все пользовательские интерфейсы Nova полностью встроены в Vue, используя компоненты Vue с одним файлом. Вы получаете максимальную гибкость при написании своих собственных инструментов, карточек и полей для Nova. В комплекте идут консольные команды для создания заготовок для всех типов надстроек:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Каждый инструмент содержит компонент «Tool.vue». Вы можете совершать вызовы Axios к бэкенду на Laravel, используя Tailwind.css для точной настройки внешнего вида инструмента. Буквально всё, что вы можете построить с компонентами Vue и бэкендом на Laravel, можно реализовать в Nova.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

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

Пользовательские поля содержат три компонента Vue: один для экранов индексов, один для подробных экранов и один для форм. Опять же, у вас есть полная свобода при определении того, как инструменты выглядят и ведут себя в Nova.

Читайте также

Хочу затронуть одну душещипательную тему, которая касается всевозможных сообществ разработчиков. В большей степени русскоязычных, так как в буржуй нэте с…

Как можно сделать очень простую систему подтверждения email адреса пользователя, после того, как он зарегистрируется на сайте? Очень многие книги,…

Небольшой пост о загрузке кода на продакшн сервер. Этот вопрос уже поднимался много раз, а в сети полно информации об…

Источник

Laravel Nova и Laravel Backpack: сравнение и обзор возможностей

Предлагаю ознакомиться с моим вариантом перевода статьи Laravel Nova vs Laravel Backpack: a review of the features. Если вы видите какие-либо ошибки, не стесняйтесь комментировать, я исправлю это.

Может ли Laravel Nova стать преемником Laravel Backpack? Являются ли эти два продукта взаимодополняющими? Давайте сравним их.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Релиз Laravel Nova состоялся в конце августа 2018 года, и принят Laravel-сообществом с большим интузиазмом, даже несмотря на то, что этот продукт платный. Я сразу же купил его, чтобы посмотреть и изучить его. Сможет ли Nova заменить мне Laravel Backpack? Я тестировал также другие продукты в категории «admin panel», такие как Laravel Voyager или Laravel Admin Architect, но мой выбор всегда останавливался на Backpack. В этот раз я был уверен, что Nova будет хорошим конкурентом.

Установка Laravel Nova и первые впечатления

Установка обоих продуктов проста. У меня не возникло проблем, даже в первый раз. Дефолтный дизайн Laravel Nova намного красивее, чем у Laravel Backpack, но так как это настраиваемая опция, это не имеет большого значения.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Nova — страница авторизации

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Единственная вещь, которая удивила меня в Nova, — это отсутствие ссылки на страницу входа с главной страницы. Наверное так даже лучше, поскольку это панель администратора, а не пользовательский кабинет.

Backpack Crud и Nova Crud: два разных подхода

Чтобы создать CRUD в Nova, нужно создать класс «Resource» содержащий в себе всю конфигурацию CRUD. После описания этого класса всё остальное делается автоматически:

Короче говоря, рабочий CRUD для модели готов. Круто!

Загрузка этих ресурсов производится в Laravel Nova автоматически при условии, что ваши классы находятся в директории app/Nova. К счастью, Nova имеет ручной механизм загрузки классов, которые можно настроить независимо от местоположения файлов. Это очень важная функция, так как простое сканирование единственной директории не даёт возможности использования другого проекта приложения, такого как модульная, с использованием Laravel-модулей Nwidart. Эта проблема присутствует в других проектах для создания панелей администратора, например, в AdminArchitect, где я не нашел способ добавить каталоги, откуда загружать классы CRUD.

С другой стороны, Laravel Backpack ничего не сканирует. Вы должны использовать свои ресурсы (называемые CrudControllers) как все остальные контроллеры: вам нужно настроить маршрут вручную и установить элемент в меню.

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

Навигация в Laravel Nova

Laravel Backpack предоставляет меню навигации, которое вы можете полностью настроить, непосредственно, отредактировав файл с представлением (sidebar_content.blade.php):

Laravel Nova автоматически добавляет пункт меню для каждого найденного ресурса, и упорядочивает по алфавиту:

Но не беспокойтесь, вы можете легко создать файл resources/navigation.blade.php в директории views, чтобы настроить навигацию именно так, как вы хотите.

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

Табличное отображение данных

Во-первых, посмотрите на два скриншота: один с Laravel Backpack с моделью под названием Vulnerability и один с Nova и модель под названием Document.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack — Crud List view

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Nova — Crud List view

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

Nova не имеет функции экспорта

С Laravel Nova вы не можете экспортировать данные из списка. Я был очень удивлён, увидев это, я думаю, что это важная функция. Конечно, вы можете запрограммировать это самостоятельно, добавив дополнительый «action» с требуемым функционалом.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Nova: добавление дополнительных действий

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack: имеет нативную поддержку экспорта данных

Backpack Laravel: выбор нескольких строк

В Backpack по-прежнему нет никакого способа выбирать несколько строк и применять к ним действия (например, удаление). Однако, разработчики анонсировали патч для реализации этой функции.

Фильтрация данных лучше в Backpack

Мне не нравится вид фильтров в Nova. Чтобы определить собственные фильтры, вам необходимо создать класс фильтра для каждого поля. Кроме того, представление фильтров практически нецелесообразно: всё доступно, нажимая на значок фильтра, и затем отображаются все фильтры. Мне это не нравится, потому что в таблице много пустых мест, и это пространство не используется даже на широком экране.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Кроме того, вы не можете определить «текстовый» фильтр (вы просто вводите текст для фильтрации строк).

В Backpack фильтры могут быть реализованы с меньшими затратами. Нет необходимости иметь отдельные файлы с классами для каждого фильтра, всё в CrudController:

У вас есть несколько типов фильтров (текст, переключатель, селект-бокс и select2, которые представляют собой поля для поиска, фильтра по дате и диапазону дат).

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack — фильтр на базе Select2

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack — фильтр по диапазону дат

Кроме того, внешний вид фильтров более интуитивно понятен в Backpack:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack фильтры вверху таблицы

Здесь Laravel Backpack является победителем.

Nova lenses: хорошая концепция

Nova предлагает возможность настраивать пользовательские представления (называемые объективами или lenses) любой таблицы CRUD. Это действительно отличная концепция. Для создания этих объективов есть artisan-команда, и общий результат очень приятный:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Кастомная вьюшка для модели User: показывает самых прибыльных пользователей

В Backpack эта функция не поддерживается напрямую. Лучшим вариантом для этого было бы, использовать фильтры, поскольку они предлагают множество настроек, а функция обратного вызова представляет весь объект CRUD, чтобы вы могли добавлять любой функционал, который вы хотите, а также добавлять и удалять столбцы. Это не было проверено, но на первый взгляд должно работать.

Laravel Backpack: вам нравятся кнопки?

В Backpack вы можете добавить много кнопок. Везде. Над таблицей, под таблицей, в каждой строке и так далее. Каждая кнопка может делать всё, что угодно: переходить на новый роут или выполнять какие-то действия с помощью Javascript/jQuery.

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

Настройка формата столбцов

С помощью Backpack вы можете настроить формат содержимого столбца, например, для создания пользовательского условия типа: «если значение равно 1, сделать цвет текста красным». Этого можно достичь с помощью двух разных механизмов:

Я не являюсь поклонником первого способа, мне всегда кажется странным добавлять функцию модели только для форматирования содержимого, она нарушает принципы MVC.

Что насчет Laravel Nova? Здесь у меня был очень плохой сюрприз. Вы действительно можете форматировать, как хотите, любой столбец с функцией displayUsing. Но с большим ограничением. Вот код:

И неожиданный результат:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Nova: кастомизация формата колонки

Это немного удивительно, я думаю, что это ошибка, а не особенность. Слишком много безопасности. Победитель: Backpack.

История изменения: легко с Backpack!

Laravel Backpack предоставляет способ отображения кнопки «ревизий» в каждой строке, что приводит к экрану, отображающему … версии записи:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack — ревизии вызывают восторг

Laravel Nova вообще не предлагает такую функцию.

Адаптивные таблицы

Просмотр списка CRUD обоих продуктов является отзывчивым. Тем не менее, Backpack добавил интересный вариант, чтобы пользователь мог выбрать, какие столбцы будут скрыты на маленьких экранах.

Предварительный просмотр записей

Nova и Backpack имеют кнопку предварительного просмотра, чтобы показать запись без редактирования.

Формы редактирования и добавления

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

Для форм редактирования / добавления здесь я выделил:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Field Panel в Laravel Nova удобны для больших форм

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Backpack — формы с табами тоже норм

Правила валидации

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

Этот код будет иметь следующую форму:

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Nova: поля, отмеченные как обязательные, не имеют красной звезды

Недавно в Backpack была реализована функция «красных звёзд», и теперь все обязательные поля имеют отличительную черту.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Nova: автоматическое отображение связанных моделей к записи

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

В Laravel Backpack такая функция недоступна, и вам придётся делать связанные шаблоны для моделей вручную.

Дашборды, карточки и метрики

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

Это хорошая функция, которая должна быть подчеркнута, поскольку это, безусловно, важная и уникальная особенность Laravel Nova.

nova laravel что это. Смотреть фото nova laravel что это. Смотреть картинку nova laravel что это. Картинка про nova laravel что это. Фото nova laravel что это

Laravel Nova график в виде карточки

Laravel Backpack не имеет этой функции, вам придётся разрабатывать её вручную, используя внешние библиотеки и модули для диаграмм. Я думаю, что это один из основных критериев, который убедит многих разработчиков использовать Nova.

Итоги: Nova или Backpack?

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

Чтобы обобщить и помочь вам выбрать между ними, вот плюсы и минусы использования Nova вместо Backpack.

Короче говоря, если ваша панель администратора остается простой, без слишком сложной кастомизации, Laravel Nova может стать отличным выбором, так как это позволит быстро разработать прототип и получить результат. Однако, как только вам понадобится выполнить сложные вещи, Laravel Backpack будет более приспособлен к вашим потребностям.

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

Пока я буду использовать Backpack для своих проектов, но я буду смотреть на Nova, поскольку она может развиваться быстро. Nova не сильно отстаёт от Backpack: с немного более настраиваемыми механизмами и прочими мелочами, это делает Backpack сильным конкурентом с чрезвычайно интересными функциями, оставаясь чистым и юзер-френдли.

Благодарности и отказ от ответственности

Благодаря разработчикам этих двух продуктов и особенно Cristian Tabacitu (Laravel Backpack) за его работу и выгодный план лицензирования. Удачи Taylor Otwell за его новый продукт и благодарность за Laravel и за Nova, которая приносит новые идеи.

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

Если вы видите какие-либо ошибки, не стесняйтесь комментировать, я исправлю это.

Читайте также

Хочу затронуть одну душещипательную тему, которая касается всевозможных сообществ разработчиков. В большей степени русскоязычных, так как в буржуй нэте с…

Бывают ситуации, например, когда предопределённых в конфиге Laravel подключений к базам данных не достаточно и возникает потребность создавать подключения динамически…

Это удивительно, но на русском языке до сих пор нет ни одного материала о работе с пакетом Backpack для фреймворка Laravel.…

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *