首页 > 解决方案 > Foreach 没有给我任何结果

问题描述

大家好!

我正在尝试使用 foreach cicle 来显示我磁盘中的一些图像,但出现了问题。它显示和错误说

消息:数组到字符串的转换 行号:306

这是我的 foreach 循环

<div class="col-lg-9">
                <div class="row">
                {foreach $products as $product}
                    <div class="col-lg-4 col-md-6 mb-4">
                        <div class="card h-100">
                            <img class="card-img-top border-bottom" src="{$product.image}" alt="">
                            <div class="card-body">
                                <h6 class="card-title">
                                    <p class="text-dark">{$product.name}</p>
                                </h6>
                            </div>
                            <button type="button" class="btn btn-secondary"><i class="material-icons">local_grocery_store</i><span class="float-right mr-4">Adicionar ao carrinho</span></button>
                        </div>
                    </div>
                    {/foreach}
                </div>
            </div>

我的错误说问题出在这条线上

$data['products'] = '.base_url(' . $this->Cart_model->get_img() . ').';

我的 get_img() 模型也是这个

    public function get_img(){
        $sql  = "SELECT * FROM products";
        $query = $this->db->query($sql); 
        return $query->result();
    }

这是我的数据库

数据库示例

标签: phphtmlsqlcodeigniter

解决方案


我认为问题在于您正在使用base_url调用model,删除base_url然后调用模型。像这样 -

$data['products'] = $this->Cart_model->get_img(); // returns array of objects

在您的视图文件中,用于foreach遍历数据,然后您必须执行类似的操作

<?php echo base_url()."path/to/folder/$product->table_image_column"; ?>

查看(在 php 中) // this is how I'd do.

<?php foreach($products as $product) { ?>
    <div class="col-lg-4 col-md-6 mb-4">
        <div class="card h-100">
            <img class="card-img-top border-bottom" src="<?php echo base_url()."your/path/$product->image"; ?>" alt="">
            <div class="card-body">
                <h6 class="card-title">
                    <p class="text-dark"><?php echo $product->name; ?></p>
                </h6>
            </div>
            <button type="button" class="btn btn-secondary"><i class="material-icons">local_grocery_store</i><span class="float-right mr-4">Adicionar ao carrinho</span></button>
        </div>
    </div>
<?php } ?>

或者如果您正在使用任何框架并且不想在其中混合 php。foreach在控制器本身中使用并添加base_url()到图像中。您不必为此

控制器在视图中进行任何更改

$i= 0;
foreach($products as $product) {
    $products[$i]->image = base_url()."path/to/image/$product->image"; // change the products array with new values
    $i++;   
}

看看对你有没有帮助。


推荐阅读