0

模型

function Show_all_products()
{
   return $this->db->get('printer')->result();
}

看法

表格内容正在循环中回显

 $i = -1;
 echo '<ul class="products">'; foreach($products as $product) : 
 if($i % 11 == 10) echo '</ul><ul class="products">'; 
?>

<li><a href="<?php echo base_url(); ?>does/products/<?php echo $product->id; echo '/'.$product->name; ?>"><?php echo $product->name; ?> </a></li>

<?php 
 $i += 1;
 endforeach; 
 echo "</ul>";

产品名称已保存,因为Something_Something_Blah我无法修改产品名称,因为它们被配置为显示干净的 URL 和面包屑。

问题是此视图中的链接显示为Something_Something_Blah

我试图做一个str_replace但是$product = str_replace('_',' ', $product);这不起作用。

我如何剥离'_'并插入 \s

4

3 回答 3

1

我看到你有<?php echo $product->name; ?>这意味着$product是一个对象。

所以你应该打电话str_replace('_', ' ', $product->name);

于 2012-09-28T21:33:16.040 回答
0

根据PHP 文档str_replace()接受字符串或数组作为它的第三个参数。您正在向它传递一个对象。你应该传递$product->name给它。

此外,请努力在您的 HTML 中嵌入 PHP,而不是在您的 PHP 中嵌入 HTML。你会发现自己在做echo所有事情。您也不需要手动创建$i迭代器,因为 foreach 循环将为您创建一个,前提是您使用foreach($x as $key => $val)语法。您也可以丢失<?php echo $var;?>for <?= $var;?>,并与.符号连接:

<ul class="products">
    <? foreach($products as $pK => $pV):?> 
        <? if($pK % 11 == 10):?></ul><ul class="products"><? endif;?>
        <li>
            <a href="does/products/<?= $pV->id .'/'. $pV->name;?>"><?= $pV->name;?></a>
        </li>
    <? endforeach;?>
</ul>
于 2012-09-28T21:52:24.217 回答
0
 <?php 
 $i = -1;
 echo '<ul class="products">'; foreach($products as $product) : 

 $product->name = str_replace('_',' ', $product->name);

 if($i % 11 == 10) echo '</ul><ul class="products">'; 
?>

<li><a href="<?php echo base_url(); ?>does/products/<?php echo $product->id; echo '/'.$product->name; ?>"><?php echo $product->name; ?> </a></li>

<?php 
 $i += 1;
 endforeach; 
 echo "</ul>";
 ?>

str_replace必须从内部调用,foreach否则将返回错误。那是我的错误。

于 2012-09-28T21:37:06.353 回答