2017-08-24 65 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

谢谢!很有用。 –