str_replace在模型或视图中?

时间:2012-09-28 21:29:05

标签: php codeigniter

模型

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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,否则将返回错误。那是我的错误。

答案 2 :(得分:0)

根据PHP documentationstr_replace()接受字符串或数组作为第三个参数。你传递的是一个物体。您应该将$product->name传递给它。

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

.