数据库中的数组,用作变量

时间:2016-08-06 11:18:50

标签: php mysql cakephp

我正在为练习制作原型发票。我正在使用CakePHP 3并且项目总是不同的,因此将它们与另一个表中的行相关联将不起作用。在每一行中,我都有一个名为items的列,其中包含一个数组:

    array(
      array("Name" => "apples",
        "Desc" => "a fruit called apple",
        "Price" => "1"
      ),
      array("Name" => "orange",
        "Desc" => "oranges",
        "Price" => "2",
      ),
      array("Name" => "watermelon",
        "Desc" => "watermelon",
        "Price" => "6"
      )
);

我想使用该数组构建一个foreach循环来显示发票中的所有项目。

    foreach ($items as $i => $row) {

    echo $row['Name'] . $row['Price'] . $row['Desc'] . "<br>";
}

我正在尝试使用此方法从列中获取数据

<?php $items = $billing->items; ?>

然而,这是我收到的:

Warning (2): Invalid argument supplied for foreach() [APP/Template\Billing\invoice.ctp, line 56]

如果我试图回显数据,它回应它就好了。我不明白为什么我不能把它变成变量。

<?= h($billing->items); ?>

1 个答案:

答案 0 :(得分:0)

Cake仅为模型关联而不是列创建实体。在这种情况下,如果您必须使用某种类型的Collection方法或php array_*函数手动设置属性。

编辑:

如果您要存储为序列化数组,则必须先将其反序列化