Добавить новое поле в модель
public function fields()
{
$fields = parent::fields();
// удаляем поля, содержащие конфиденциальную информацию
unset($fields['auth_key'], $fields['password_hash'], $fields['password_reset_token']);
return $fields;
}
в коде выше удаляются указанные поля методом unset().
Есть ли метод типа set() который добавляет новое поле?
Если сделать так:
$fields = ['requests_count'];
то возвращает только поле requests_count.
Мне надо чтобы requests_count добавился к уже существующим полям
Ответы (1 шт):
Естественно, $fields = ['requests_count']; заменяет всё содержимое массива на requests_count. Вы ведь присваиваете переменной $field новый массив. Чтобы добавить новое поле в массив нужно использовать такой синтаксис: $fields[] = 'requests_count';. Это добавит элемент в конец массива (с числовым индексом, который следует за наибольшим существующим индексом в массиве).
Если нужно добавить сразу несколько элементов, то можно использовать функцию array_push. Но для добавления в массив только одного элемента лучше не использовать функции, как советуется в документации php (PHP: array_push - Manual).