php通知:到字符串转换的数组



我想向我的表中显示所有数据中的所有数据,但是有一些错误。我正在尝试访问PHP阵列。但这使我陷入了字符串转换错误。通知是"到字符串转换的数组"我的控制器:

 public function actionStockitem() {
    $datepost = date('Y-m-d');
    $d1 = isset($data['d1']) ? $data['d1'] : $datepost;
    $sql = " SELECT s1.name as name          
        FROM
            (SELECT i.item_id,i.name,i.unitcost,
            (SUM(s1.qty)) as stock1,         
            ((SUM(s1.qty))* i.unitcost) as cost1     
             FROM (SELECT item_id,name,unitcost FROM mitem  ) as i
             JOIN mstocklist s1 ON s1.item_id=i.item_id
             JOIN mstock s2 ON s2.id=s1.stock_id
             WHERE s2.receive_date <='$d1'
            GROUP BY i.item_id
            ORDER BY i.name ASC ) s1
          LEFT OUTER JOIN
            (SELECT i.item_id,i.name,i.unitcost,
            (SUM(s1.qty)) as stock2,
            ((SUM(s1.qty))* i.unitcost) as cost2    
            FROM (SELECT item_id,name,unitcost FROM mitem  ) as i
            JOIN msublist s1 ON s1.item_id=i.item_id
            JOIN msub s2 ON s2.id=s1.sub_id
            WHERE s2.receive_date <='$d1'
            GROUP BY i.item_id
            ORDER BY i.name ASC ) s2 ON s2.item_id=s1.item_id 
          WHERE  ((s1.stock1)-IFNULL(s2.stock2,0))<>0
          ORDER BY s1.name,cost1  ASC ";
    $command = Yii::$app->db->createCommand($sql);
    $reader = $command->query();
    $inames = $reader->readAll();
    $temp = array();
    $iname = $inames;
    $temp['name'] = $iname;
    $result[] = $temp;
    return $this->render('stockitem', [
                'inames' => $inames,
                'sql' => $sql,
                'result' => $result,
    ]);
}

这是视图:

<tbody>           
        <tr>
            <td>
                <?php
                $i = 1;
                foreach ($result as $data) {
                    ?>
                </td>
            </tr>
            <tr>
                <td align="center"><?php echo $i; ?></td>
                <td align="left" class="style3"><?php echo $data['name']; ?></td>  //error in this line
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
            </tr>
        </tbody>
        <?php
        $i++;
    }
    ?>

请给我一些建议

不必要地将数据推向inside the arrayreadAll()返回单个数组中的结果。因此,只需将其传递到查看即可。这样。

    $inames = $reader->readAll();
    // $temp = array();
    //$iname = $inames;
    // $temp['name'] = $iname;
    // $result[] = $temp;
    return $this->render('stockitem', [
                'inames' => $inames,
                'sql' => $sql,
                'result' => $inames,
    ]);

最新更新