Download the PHP package darkeum/darklyy-json-attributes without Composer
On this page you can find all versions of the php package darkeum/darklyy-json-attributes. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download darkeum/darklyy-json-attributes
More information about darkeum/darklyy-json-attributes
Files in darkeum/darklyy-json-attributes
Package darklyy-json-attributes
Short Description Добавляет JSON атрибуты в модели Darklyy.
License MIT
Homepage https://github.com/darkeum/darklyy-json-attributes
Informations about the package darklyy-json-attributes
Добавляет JSON атрибуты в модели Darklyy.
Было бы здорово, если бы в Darklyy была возможность использовать дух NoSQL. Этот пакет делает именно это. Он предоставляет трейт, который при применении к модели позволяет хранить произвольные значения в одном столбце JSON.
Вот несколько примеров. Здесь мы используем столбец extra_attributes
, но вы можете назвать его как хотите
Требования
Для этого пакета требуется база данных с поддержкой столбцов json
, например MySQL 5.7 или выше.
Установка
Вы можете установить пакет через composer:
JSON атрибуты будут храниться в столбце json в таблице вашей модели. Давайте добавим этот столбец и подготовим модель.
Добавление столбца, в котором будут храниться JSON атрибуты
Добавьте миграцию для всех моделей, в которые вы хотите добавить JSON атрибуты. Вы должны использовать метод jsonAttributes
в Blueprint
, чтобы добавить столбец. Аргумент, который вы даете jsonAttributes
, — это имя добавляемого столбца. Вы можете использовать любое имя, какое захотите. Вы также можете добавить в таблицу столько столбцов атрибутов без схемы, сколько захотите. Во всех примерах этого файла сведений мы будем использовать один столбец с именем extra_attributes
.
Подготовка модели
Чтобы работать с JSON атрибутами, вам нужно добавить к своей модели собственное приведение и область видимости. Вот пример того, что вам нужно добавить, если вы выбрали extra_attributes
в качестве имени столбца.
Если вам нужна поддержка нескольких столбцов без схемы в одной модели, вы должны использовать трейт JsonAttributesTrait
. Вот пример того, что вам нужно добавить, если вы выбрали extra_attributes, other_extra_attributes
в качестве имен столбцов.
Если вы хотите повторно использовать это поведение в нескольких моделях, вы можете поместить функцию в свой собственный трейт. Вот как может выглядеть эта трейт:
Использование
Получение и установка JSON атрибутов
Это самый простой способ получить и установить JSON атрибуты:
В качестве альтернативы вы можете использовать массив:
Вы можете заменить все существующие JSON атрибуты без схемы, назначив им необходимый массив.
Вы также можете использовать get
и set
. Методы имеют поддержку записи через точку.
Вы также можете передать значение по умолчанию методу get
.
Сохранение JSON атрибутов
Чтобы сохранить JSON атрибуты, вы должны, как и для обычных атрибутов, вызвать save()
в модели.
Получение моделей с определенными JSON атрибутами
Вот как вы можете использовать предоставленный объект modelScope.
Если вы хотите выполнять поиск только по одному JSON атрибуту, вы можете использовать modelScope следующим образом.
Кроме того, если вы хотите выполнять поиск только по одному JSON атрибуту с помощью пользовательского оператора, вы можете использовать modelScope следующим образом.
Если вы хотите выполнять поиск только по вложенному JSON атрибуту, вы можете использовать modelScope следующим образом.
Тестирование
Сначала создайте базу данных MySQL с именем darklyy_json_attributes
. После этого вы можете запустить тесты с помощью:
Лицензия
The MIT License (MIT). Смотрите License File для получения дополнительной информации.
All versions of darklyy-json-attributes with dependencies
illuminate/database Version ^7.0|^8.0|^9.0
illuminate/support Version ^7.0|^8.0|^9.0
darkeum/darklyy-package-tools Version ^1.0.0
illuminate/contracts Version ^7.0|^8.0|^9.0