Интерфейс yii\base\Arrayable
Arrayable — интерфейс, который должны реализовывать классы, желающие поддерживать настраиваемое представление своих экземпляров.
Например, если класс реализует Arrayable, вызвав toArray(), экземпляр этого класса можно преобразовать в массив (включая все вложенные объекты), который затем можно легко преобразовать в другие форматы, такие как JSON, XML.
Методы fields() и extraFields() позволяют реализующим классам настроить, как и какие данные должны быть отформатированы и включены в результат toArray().
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| extraFields() | Возвращает список дополнительных полей, которые могут быть возвращены методом toArray() в дополнение к полям, перечисленным в fields(). | yii\base\Arrayable |
| fields() | Возвращает список полей, которые по умолчанию должны возвращаться методом toArray(), когда не указаны конкретные поля. | yii\base\Arrayable |
| toArray() | Преобразует объект в массив. | yii\base\Arrayable |
Подробное описание методов
extraFields() общедоступный абстрактный метод
Возвращает список дополнительных полей, которые могут быть возвращены методом toArray() в дополнение к полям, перечисленным в fields().
Этот метод похож на fields(), за исключением того, что список полей, объявленных в этом методе, по умолчанию не возвращается методом toArray(). Только когда поле из списка явно запрашивается, оно будет включено в результат toArray().
См. также:
| общедоступный абстрактный массив extraFields ( ) | ||
|---|---|---|
| возвращаемое значение | массив |
Список имен расширяемых полей или определений полей. Обратитесь к fields() за формой возвращаемого значения. |
fields() общедоступный абстрактный метод
Возвращает список полей, которые по умолчанию должны возвращаться методом toArray(), когда не указаны конкретные поля.
Поле — это именованный элемент в возвращаемом массиве методом toArray().
Этот метод должен возвращать массив имен полей или определений полей. Если это первое, имя поля будет рассматриваться как имя свойства объекта, значение которого будет использоваться в качестве значения поля. Если это последнее, ключ массива должен быть именем поля, а значение массива — соответствующим определением поля, которое может быть именем свойства объекта или PHP-выражением, возвращающим соответствующее значение поля. Подпись вызова должна быть:
function ($model, $field) {
// return field value
}
Например, следующий код объявляет четыре поля:
-
email: имя поля совпадает с именем свойстваemail; -
firstNameиlastName: имена полей —firstNameиlastName, а их значения получаются из свойствfirst_nameиlast_name; -
fullName: имя поля —fullName. Его значение получается путем конкатенацииfirst_nameиlast_name.
return [
'email',
'firstName' => 'first_name',
'lastName' => 'last_name',
'fullName' => function ($model) {
return $model->first_name . ' ' . $model->last_name;
},
];
См. также toArray().
| общедоступный абстрактный массив fields ( ) | ||
|---|---|---|
| возвращаемое значение | массив |
Список имен полей или определений полей. |
toArray() общедоступный абстрактный метод
Преобразует объект в массив.
| общедоступный абстрактный массив toArray ( массив $fields = [], массив $expand = [], $recursive = true ) | ||
|---|---|---|
| $fields | массив |
Поля, которые должны содержать выходной массив. Поля, не указанные в fields(), будут проигнорированы. Если этот параметр пуст, будут возвращены все поля, указанные в fields(). |
| $expand | массив |
Дополнительные поля, которые должен содержать выходной массив. Поля, не указанные в extraFields(), будут проигнорированы. Если этот параметр пуст, дополнительные поля не будут возвращены. |
| $recursive | логический |
Необходимо ли рекурсивно возвращать представление массива вложенных объектов. |
| возвращаемое значение | массив |
Представление объекта в виде массива |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-base-arrayable.html