jakharbek / yii2-datamanager
yii2 datamanager
Installs: 644
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- kartik-v/yii2-widget-select2: @dev
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2025-03-07 23:45:37 UTC
README
yii2 datamanager
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist jakharbek/yii2-datamanager "*"
or add
"jakharbek/yii2-datamanager": "*"
to the require section of your composer.json
file.
Usage
Для начало успользованеи данного расширение вам нужно будет настроить все связи перед темь как начать работу.
После в модель которую вы собираетесь использовать применити поведение:
jakharbek\datamanager\behaviors\DataModelBehavior
Для примера мы будем использовать модель Постов (Posts) и модель Персон (Persons) и сделаем связь между постами и персонами
пример:
class Posts{ private $_personsdata; public function behaviors() { return [ 'data_persons_model' => [ 'class' => \jakharbek\datamanager\behaviors\DataModelBehavior::className(), 'attribute' => 'personsdata', 'relation_name' => 'persons', 'relation_model' => new Persons(), ] ]; } public function getPersonsdata(){ return $this->_personsdata; } public function setPersonsdata($value){ return $this->_personsdata = $value; } }
Action
После того вам нужно подключть "действие" для того что расширение могла узнать где искать данные
jakharbek\datamanager\actions\Action
свойство
/** * @var string имя таблица по который нужно произвести поиск */ public $table = "posts"; /** * @var string имя первичного ключа */ public $primaryColumn = "post_id"; /** * @var string имя поля по которому нужно искать */ public $textColumn = "title"; /** * @var string другие поля который нужно вернуть через пробел как и в SQL */ public $otherColumns = '';
пример
class Posts{ public function actions(){ return [ 'getdata' => [ 'class' => 'jakharbek\datamanager\actions\Action', 'table' => 'posts', 'primaryColumn' => 'post_id', 'textColumn' => 'title' ], ]; } }
после того как вы настроили модель вам нужно вывести виджет
- model_db - имя текушей модели
- name - имя инпута формы.
- attribute - имя атрибута который присваемваться данные
- attribute_id - имя поля первичного ключа в базе данных связанный таблице
- attribute_text - имя поля по название в базе данных связанный таблице
echo jakharbek\datamanager\widgets\InputWidget::widget([ 'model_db' => $model, 'name' => 'Posts[personsdata]', 'attribute' => 'personsdata', 'attribute_id' => 'person_id', 'attribute_text' => 'title', 'relation_name' => 'persons', 'url' => '/posts/posts/getdata/', ]);