Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
lowbase committed May 8, 2016
1 parent d278fad commit 0aba811
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,73 @@ php composer.phar require --prefer-dist lowbase/yii2-document "*"
```
php yii migrate/up --migrationPath=@vendor/lowbase/yii2-document/migrations
```
Работа с документами
--------------------
Значения дополнительных полей документа хранятся в массиве `$document->fields`

После получения самого документа массив не заполняется:

```
$document = app\models\Document::findOne($id);
print_r($document->fields); //Array() - массив пуст
```

Для заполнения дополнительных полей документа используйте метод `fillFields()`

```
$document = app\models\Document::findOne($id);
$document->fillFields();
print_r($document->fields); //Array([1] => ['name' => 'Теги', 'type' => 4, 'param' => '', 'min' => 0, 'max' => 2, 'data' => [[1] => ['value' => 'Тег_1', 'position' => ''], [2] => ...]], [2] => ...)
/**
* Значения дополнительных полей
* Массив должен иметь следующую структуру:
*
* [$field_id] => [
* 'name' => 'Название дополнительного поля',
* 'type' => 'Тип дополнительного поля',
* 'param' => 'Параметр дополнительного поля',
* 'min' => 'Минимум значений',
* 'max' => 'Максимум значений',
* 'data' => [ $data_id => [
* 'value' => 'Значение дополнительного поля'
* 'position' => 'Позиция дополнительного поля'
* ],
* ...
* ]
* ],
* ...
*
* $field_id - ID дополнительного поля из БД, $data_id - ID записи значения дополнительного поля из БД
* Если необходимо прикрепить новое значение 'data' к документу, то в качестве ключа используем 'new_'.$i, где
* $i - идентификатор нового значения
*/
```
После сохранения документа
```
$document->save();
```
значения дополнительных полей будут сохранены в соответствующие таблицы.

Можно также получить значения дополнительных полей запросами к соответствующим таблицам (в зависимости от типа поля) БД напрямую

```
// Получение значений дополнительного поля $field_id строкового типа
$data_values = \lowbase\document\models\ValueString::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
// Получение значений дополнительного поля $field_id числового типа
$data_values = \lowbase\document\models\ValueNumeric::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
// Получение значений дополнительного поля $field_id типа Текст
$data_values = \lowbase\document\models\ValueText::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
// Получение значений дополнительного поля $field_id типа Дата
$data_values = \lowbase\document\models\ValueDate::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
```

Запуск виджетов
---------------
```
use lowbase\document\components\TreeWidget;
// Виджет отображения документов в виде деревва (используется компонент jstree)
<?= TreeWidget::widget(['data' => Document::find()->orderBy(['position' => SORT_ASC])->all()]) ?>
```

0 comments on commit 0aba811

Please sign in to comment.