Установить значение в объекте
Добрый день.
Допустим, у нас существует объект:
$var = object(Taxonomies)#73 (12) {
["_new":"CActiveRecord":private]=>
bool(false)
["_attributes":"CActiveRecord":private]=>
array(5) {
["id"]=>
string(1) "1"
["name"]=>
string(9) "testName"
["slug"]=>
string(9) "testSlug"
["code"]=>
string(9) "testCode"
["count"]=>
string(1) "0"
}
["_related":"CActiveRecord":private]=>
array(0) {
}
["_c":"CActiveRecord":private]=>
NULL
["_pk":"CActiveRecord":private]=>
string(1) "2"
["_alias":"CActiveRecord":private]=>
string(1) "t"
["_errors":"CModel":private]=>
array(0) {
}
["_validators":"CModel":private]=>
NULL
["_scenario":"CModel":private]=>
string(6) "update"
["_e":"CComponent":private]=>
NULL
["_m":"CComponent":private]=>
NULL
}
Вопрос: каким образом можно преобразовать его в:
$var = object(Taxonomies)#73 (12) {
["_new":"CActiveRecord":private]=>
bool(false)
["_attributes":"CActiveRecord":private]=>
array(5) {
["id"]=>
string(1) "1"
["name"]=>
string(9) "testName"
["slug"]=>
string(9) "testSlug"
["code"]=>
string(9) "testCode"
["count"]=>
string(1) "0"
["custom"]=>
string(1) "10"
}
["_related":"CActiveRecord":private]=>
array(0) {
}
["_c":"CActiveRecord":private]=>
NULL
["_pk":"CActiveRecord":private]=>
string(1) "2"
["_alias":"CActiveRecord":private]=>
string(1) "t"
["_errors":"CModel":private]=>
array(0) {
}
["_validators":"CModel":private]=>
NULL
["_scenario":"CModel":private]=>
string(6) "update"
["_e":"CComponent":private]=>
NULL
["_m":"CComponent":private]=>
NULL
}
То есть каким образом можно установить в массиве _attributes
новое значение?
Пытался таким образом:
$var->_attributes->custom = '10';
и таким (через функцию yii):
$var->setAttribute('custom', '10');
В первом случае ошибка, во втором - custom добавляется в начало объекта, то есть перед _new
, а не в _attributes
.
Источник: Stack Overflow на русском