PHPackages                             kosv/yii2-grid-roweditable - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kosv/yii2-grid-roweditable

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

kosv/yii2-grid-roweditable
==========================

Extension for editing rows for yii2 grid widget.

1.0.2(7y ago)1312[5 issues](https://github.com/Konstantin-Vl/yii2-grid-rowEditable/issues)BSD-3-ClausePHPPHP &gt;=5.5.0

Since Jan 27Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Konstantin-Vl/yii2-grid-rowEditable)[ Packagist](https://packagist.org/packages/kosv/yii2-grid-roweditable)[ Docs](https://github.com/Konstantin-Vl/yii2-grid-rowEditable.git)[ RSS](/packages/kosv-yii2-grid-roweditable/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (2)Versions (5)Used By (0)

Yii2 Grid RowEditable
=====================

[](#yii2-grid-roweditable)

Yii2 расширение для редактирования данных в [`GridView`](https://www.yiiframework.com/doc/api/2.0/yii-grid-gridview)

Установка
---------

[](#установка)

Выполните

```
$ composer require kosv/yii2-grid-roweditable:1.0.*
```

или добавьте `"kosv/yii2-grid-rowEditable": "1.0.*"` в `composer.json`

Определения
-----------

[](#определения)

**YourGridView** - для использования данного расширения вам нужно иметь/создать дочерний класс от [`GridView`](https://www.yiiframework.com/doc/api/2.0/yii-grid-gridview), поэтому такой класс мы будем называть `YourGridView`.
**YourSaveForm** - вам нужно будет создать форму в которой будет выолняться валидация и сохранение данных. В даннной документации такая форма будет называться `YourSaveForm`.

Как использовать?
-----------------

[](#как-использовать)

1. Нужно подключить данное расширение к `YourGridView`.
2. Нужно реализовать `YourSaveForm`. В этом классе будет выполняться процесс валидации и сохранения данных.
3. В экшене вашего контроллера создать объект `YourSaveForm` и реализовать логику для сохранения данных формы.
4. Нужно вывести `YourGridView` в вашем View и указать обязательные общие параметры редактирования.
5. В список столбцов добавить `Kosv\Yii2Grid\RowEditable\Select\CheckboxColumn`. Это столбец чекбоксов, который позволяет выбирать строки.
6. Вывести кнопку сохранения изменений.

### Шаг 1. Инициализация YourGridView

[](#шаг-1-инициализация-yourgridview)

Если у вас нет дочернего класса от [`GridView`](https://www.yiiframework.com/doc/api/2.0/yii-grid-gridview), то создайте его в любом месте вашего приложения

```
namespace app\widgets;

use yii\grid\GridView as YiiGridView;

class YourGridView extends YiiGridView
{
}
```

К `YourGridView` подключите интерфейс `Kosv\Yii2Grid\RowEditable\EditableGridInterface`,
и трейт `Kosv\Yii2Grid\RowEditable\EditableGridTrait`

```
namespace app\widgets;

use Kosv\Yii2Grid\RowEditable\EditableGridInterface;
use Kosv\Yii2Grid\RowEditable\EditableGridTrait;
use yii\grid\GridView as YiiGridView;

class YourGridView extends YiiGridView implements EditableGridInterface
{
    use EditableGridTrait;
}
```

### Шаг 2. Создание YourSaveForm

[](#шаг-2-создание-yoursaveform)

Создайте класс формы и унаследуйти его от `yii\base\Model`(или от любого другого потомка `yii\base\Model`)

```
namespace app\models;

use yii\base\Model;

/**
 * @property array $editingRows
 */
class YourSaveForm extends Model
{
}
```

К `YourSaveForm` подключите итерфейс `Kosv\Yii2Grid\RowEditable\Form\SaveFormInterface`и трейт `Kosv\Yii2Grid\RowEditable\Form\SaveFormTrait`

```
namespace app\models;

use Kosv\Yii2Grid\RowEditable\Form\SaveFormInterface;
use Kosv\Yii2Grid\RowEditable\Form\SaveFormTrait;
use yii\base\Model;

/**
 * @property array $editingRows
 */
class YourSaveForm extends Model implements SaveFormInterface
{
    use SaveFormTrait;
}
```

В `YourSaveForm` реализуйте методы: `validateEditableRows`(отвечает за валидацию данных) и `saveEditableRows`(отвечает за сохранение данных). По умолчанию, данные методы не имеют реализации, поэтому вы должы сами позаботиться о том, как будут валидироваться и сохраняться ваши данные.

```
namespace app\models;

use Kosv\Yii2Grid\RowEditable\Form\SaveFormInterface;
use Kosv\Yii2Grid\RowEditable\Form\SaveFormTrait;
use yii\base\Model;

/**
 * @property array $editingRows
 */
class YourSaveForm extends Model implements SaveFormInterface
{
    use SaveFormTrait;

    /**
     * @return bool
     */
    public function validateEditableRows()
    {
        // TODO: Ваша логика валидации данных из массива $this->editingRows
    }

    /**
     * @return bool
     */
    public function saveEditableRows()
    {
        // TODO: Ваша логика сохранения данных из массива $this->editingRows
    }
}
```

### Шаг 3. Создание и сохранение YourSaveForm в экшене вашего контроллера

[](#шаг-3-создание-и-сохранение-yoursaveform-в-экшене-вашего-контроллера)

```
public function actionIndex()
{
    $gridSaveForm = new app\models\YourSaveForm();
    if ($gridSaveForm->load(Yii::$app->request->post()) &&
        $gridSaveForm->validate() &&
        $gridSaveForm->validateEditableRows()) {

        $gridSaveForm->saveEditableRows();
    }

    return $this->render('index', [
        'gridSaveForm' => $gridSaveForm,
    ]);
}
```

### Шаг 4. Вывод и обязательные параметры

[](#шаг-4-вывод-и-обязательные-параметры)

Выведите `YourGridView` в представлении и укажите обязательный параметр `form`

```
