2017-08-24 3 views
1

私はhtml brタグ "\ r \ n"とPHP_EOLを使ってみましたが、私のテーブルデータは改行しません。キャリッジリターンを与えるのではなく、なぜ単一行に追加するのか分かりません。cakephp 2.X newline not working

は、ここでは現在、私のデータを示していますどのようにの画像です:

How it's currently formatting my data

<table> 
    <tr> 
     <th>Article</th> 
     <th>Action</th> 
    </tr> 

    <?php 
     foreach ($posts as $post): 
    ?> 
     <tr> 
      <td>  
<?php 
    echo $this->Html->link($this->Time->format($post['Post']['created'], '%d %b %Y', 'invalid') 
     . " - " . $post['Post']['article_title'] 
     . PHP_EOL . "<br />\n" . "\r\n" 
     . $post['Post']['article_link'], array(
     'controller' => 'posts', 
     'action' => 'view', 
     'inline' => false, 
     'escape' => false, 
     $post['Post']['id'] 
    )); 
?> 

      </td> 

<td> 
<?php 
    echo $this->Html->link('Edit', array(
     'action' => 'edit', 
     $post['Post']['id'] 
    )); 
?> 
<?php 
    echo $this->Form->postLink('Delete', array(
     'action' => 'delete', 
     $post['Post']['id'] 
    ), array(
     'confirm' => 'Are you sure?' 
    )); 
?> 
      </td> 
     </tr> 
    <?php 
endforeach; 
?> 
    <?php 
unset($post); 
?> 
</table> 

答えて

1

オプションは、三番目の引数、つまり、HtmlHelper::link()$options引数で渡されるメンターされています。 2番目の引数は、URLにのみ使用されるものです。

また、自動エスケープを無効にすると、XSSを回避するために関連する部品を手動でエスケープする必要があります。

echo $this->Html->link(
    $this->Time->format($post['Post']['created'], '%d %b %Y', 'invalid') 
     . " - " 
     . h($post['Post']['article_title']) // escape manually 
     . "<br />" 
     . h($post['Post']['article_link']), // escape manually 
    array(
     'controller' => 'posts', 
     'action' => 'view', 
     $post['Post']['id'] 
    ), 
    array(
     'inline' => false, 
     'escape' => false 
    ) 
); 

も参照してくださいCookbook > Core Libraries > Helpers > Html > HtmlHelper::link()

+0

参考資料をありがとうございます!クロスサイトスクリプティングを避けるためにエスケープを注意深く配置してください。 –

1

HTML文字をエスケープするためにあなたのリンクオプションに'escape' => falseを追加します。これにより、<br>を使用することができます。 escapeよう

echo $this->Html->link($this->Time->format($post['Post']['created'], '%d %b %Y', 'invalid') 
     . " - " . $post['Post']['article_title'] 
     . PHP_EOL . "<br />\n" . "\r\n" 
     . $post['Post']['article_link'], 
     array(
      'controller' => 'posts', 
      'action' => 'view', 
      'inline' => false, 
      'escape' => false, // move this 
      $post['Post']['id'] 
     ), 
     array(
      'escape' => false // to here 
     ) 
    ); 
+1

はあなたに感謝します!非常に便利。 –