2017-08-24 51 views
1

我試過使用html br標籤,「\ r \ n」和PHP_EOL,但我的表格數據不會換行。我不明白爲什麼它只是將它附加到一行而不是給出回車。cakephp 2.X換行符不工作

下面是它是如何目前顯示我的數據的圖像:

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

escape選項有精神疾病在HtmlHelper::link()$options參數傳遞,也就是第三個參數。第二個參數僅用於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

添加'escape' => false你的鏈接選項,以逃避HTML字符。這將允許您使用<br>

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

謝謝!很有用。 –