【问题标题】:Foreach not giving me any resultForeach 没有给我任何结果
【发布时间】:2020-05-14 18:42:52
【问题描述】:

大家好!

我正在尝试使用 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();
    }

这是我的数据库

Data base example

【问题讨论】:

  • get_img()SELECT * FROM products 返回行,所以$this-&gt;Cart_model-&gt;get_img() 是一个完整的数据数组。
  • 但是 SELECT images FROM products 不能解决问题,只能从数据库中返回一个项目

标签: php html sql codeigniter


【解决方案1】:

我认为问题在于您使用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() 添加到图像中。您不必为此在视图中进行任何更改-

Controller

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

看看对你有没有帮助。

【讨论】:

  • 但是我以后如何添加基本 url 以将我的图像放入数据库中?如果我不使用基本 url,它将进入一些奇怪的路径
  • 它不起作用,答案是添加 src="" 到视图
  • 是的,这正是我在第一个代码中写的 [view(in php)] @RicardoMartins smh
【解决方案2】:

答案是在视图中添加src="&lt;?php echo base_url('{$product.image}'); ?&gt;"

<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="<?php echo base_url('{$product.image}'); ?>" alt="" style="width:30px;height:30px;">
                                <div class="card-body">
                                    <h6 class="card-title">
                                        <p class="text-dark">{$product.name}</p>
                                    </h6>
                                    <div class="text-danger"><b><span>{$product.price}€ </span></b><span class="text-secondary float-right"><del>{number_format((float)$product.price*1.5, 2, '.', '')}€</del></span></div>
                                </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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多