mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 20:19:42 +08:00
Russian translation: improvements of input-tabular-input (#16297) [skip ci]
This commit is contained in:
committed by
Alexander Makarov
parent
725fe75579
commit
3278b0aea6
@ -1,7 +1,7 @@
|
||||
Табличный ввод
|
||||
========================
|
||||
|
||||
Иногда возникает необходимость обработки нескольких моделей одного вида в одной форме. Например, несколько параметров, каждый из которых сохраняется как пара имя-значение и представляется моделью `Setting` [active record](db-active-record.md).
|
||||
Иногда возникает необходимость обработки нескольких моделей одного вида в одной форме. Например, несколько параметров, каждый из которых сохраняется как пара имя-значение и представляется моделью [Active Record](db-active-record.md) `Setting`.
|
||||
Такой тип форм часто называют "табличным вводом".
|
||||
Обработка данных нескольких моделей разных видов в одной форме описана в разделе [Работа с несколькими моделями](input-multiple-models.md).
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
В отличие от форм с одной моделью, рассмотренных ранее, теперь будем иметь дело с массивом моделей. Этот массив передается в представление и для каждой модели отображаются поля ввода в табличном виде. Для загрузки и валидации нескольких моделей сразу будем использовать вспомогательные методы класса [[yii\base\Model]]:
|
||||
|
||||
- [[yii\base\Model::loadMultiple()|Model::loadMultiple()]] загружает данные post в массив моделей;
|
||||
- [[yii\base\Model::loadMultiple()|Model::loadMultiple()]] загружает POST-данные в массив моделей;
|
||||
- [[yii\base\Model::validateMultiple()|Model::validateMultiple()]] валидирует массив моделей.
|
||||
|
||||
### Изменение фиксированного набора записей
|
||||
@ -51,7 +51,7 @@ class SettingsController extends Controller
|
||||
}
|
||||
```
|
||||
|
||||
В коде выше, для получения из базы данных массива моделей, индексированного по главному ключу, использован метод [[yii\db\ActiveQuery::indexBy()|indexBy()]]. В дальнейшем будем использовать это для идентификации полей формы. Метод [[yii\base\Model::loadMultiple()|Model::loadMultiple()]] загружает данные запроса POST в массив моделей, а метод [[yii\base\Model::validateMultiple()|Model::validateMultiple()]] проводит валидацию всех моделей. Так, как модели уже прошли валидацию, мы передаем методу [[yii\db\ActiveRecord::save()|save()]] параметр `false` для отключения повторной валидации.
|
||||
В коде выше, для получения из базы данных массива моделей, индексированного по главному ключу, использован метод [[yii\db\ActiveQuery::indexBy()|indexBy()]]. В дальнейшем будем использовать это для идентификации полей формы. Метод [[yii\base\Model::loadMultiple()|Model::loadMultiple()]] загружает данные запроса POST в массив моделей, а метод [[yii\base\Model::validateMultiple()|Model::validateMultiple()]] проводит валидацию всех моделей. Так как модели уже прошли валидацию, мы передаем методу [[yii\db\ActiveRecord::save()|save()]] параметр `false` для отключения повторной валидации.
|
||||
|
||||
Теперь займемся формой в представлении `update`:
|
||||
|
||||
@ -89,9 +89,9 @@ public function actionCreate()
|
||||
}
|
||||
```
|
||||
|
||||
Сначала создается массив `$settings`, содержащий один экземпляр модели, так что, по умолчанию в представлении всегда будет отображено хотя бы одно поле. Дополнительно, добавляются модели для каждой полученной строки ввода.
|
||||
Сначала создается массив `$settings`, содержащий один экземпляр модели, так что по умолчанию в представлении всегда будет отображено хотя бы одно поле. Дополнительно, добавляются модели для каждой полученной строки ввода.
|
||||
|
||||
В представлении возможно использовать javascript для добавления новых полей динамически.
|
||||
В представлении возможно использовать JavaScript для добавления новых полей динамически.
|
||||
|
||||
|
||||
### Изменение, создание и удаление записей на одной странице
|
||||
|
||||
Reference in New Issue
Block a user