我是php新手,我正在尝试向我的对象添加一个新属性 onhold 。
$ designation是来自数据库的对象数组。
$data = array(
"page" => $this->page(),
"requisitions" => \aljaber\requisition\requisition::find($this->registry, array()),
);
$designation = $data["requisitions"];
foreach ($designation as $key => &$value) {
$result = json_decode($value["Designation"], true);
$hold = 0;
foreach ($result as $v)
{
$hold = $hold + $v["onhold"];
}
$value[ 'onhold'] = $hold;
}
echo self::load_view("list", $data);
任何帮助表示感谢。
答案 0 :(得分:0)
您的变量$value
不是对象,是一个数组。这可以在您附加的屏幕截图中看到(如果您添加代码而不是图像会更好,但没关系)。
要解决此问题,您有两种选择:使用(array)$value
更改(object)$value
或向数组添加密钥,然后转换为对象:
$value['onhold'] = $hold;
var_dump($value); // Array(1) { "onhold"=>"value" }
$objValue = (object)$value; //convert an array to an object
var_dump($objValue); // Object(1) { "onhold" => "value" }