orangeShadow / properties by orangeshadow

Typed properties from any Model in Laravel
11
4
1
Package Data
Maintainer Username: orangeshadow
Maintainer Contact: alexeev.sker@gmail.com (Alexeev Anton)
Package Create Date: 2015-05-03
Package Last Update: 2018-04-28
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-30 15:09:30
Package Statistics
Total Downloads: 11
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 4
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

[RU] #Пакет для добавления произвольным моделям, произвольных свойств с Валидацией

  • Шаг 1: Подключаем сервис провайдер app/config/app.php 'orangeShadow\properties\PropertiesServiceProvider'

  • Шаг 2: Прогружаем миграции: php artisan vendor:publish, php artisan migrate

  • Шаг 3: Создаем, (предполагается, что модель Page у нас есть)

$property = orangeShadow\CustomModelProperties\Model\Property::create(
				[
					"model"=>"Page",
					"code"=>"VIEWS",
					"title"=>"Кол-во просмотров",
					"description"=>"Счетчик просмотра страницы",
					"type"=>"numeric",
					"sort"=>"1",
					"multiple"=>false,
					"required"=>true
				]
		);
  • Шаг 4: Добавялем к Моделе Page Trait use orangeShadow\CustomModelProperties\TraitProperty;

  • Шаг 5: Можем задать по коду свойство или получить его

$page = App\Page::find(1);
//Задать значение свойства по коду 
$page->setPropertyValueByCode('VIEWS',1);
//Получить значение свойства по коду
$page->getPropertyValueByCode('VIEWS');

##Вспомогательные методы TraitProperty:

Получить весь список свойств текущей модели getProperties()

Получить весь список значений свойств текущей модели getPropertiesValue

Если наследоваться от orangeShadow\CustomModelProperties\Http\Requests

public function rules()
{
  $rules = parent::relus();
  $rules+=[свои правила];
  return $rules;
}

получим валидацию по параметрам properties.code