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_replaceasをしようとしましたが、$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 
 $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 に答える
0

PHPのドキュメントに従って、str_replace()は3番目の引数として文字列または配列を受け入れます。あなたはそれにオブジェクトを渡しています。あなたはそれに渡す必要が$product->nameあります。

さらに、PHPにHTMLを埋め込むのではなく、HTMLにPHPを埋め込むようにしてください。あなたは自分がすべてをしていることに気付くでしょうecho。構文$iを使用すれば、foreachループによってイテレータが作成されるため、手動でイテレータを作成する必要もありません。あなたもforforeach($x as $key => $val)を失う可能性があり、シンボルと連結することができます:<?php echo $var;?><?= $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 に答える