CAKEPHP:链接整个<div> </div>

时间:2012-11-06 12:11:17

标签: php cakephp

我在Notes表中查看了特定字段。

    echo "<div id='notescover'>";
    echo "<p class='text'>"; 
    echo $viewnotes['Note']['notes']; 
    echo "</p>"; 
    echo "</div>";

我已将评论链接到特定的音符URL,例如/ note / view / IDofNote

echo $this->Html->link('Comment', array( 'controller'=>'notes', 'action'=>'view',$viewnotes['Note']['id']), array('class'=> 'light_blue'));

我想删除此链接并将相同的操作链接到上面的div标记。我能够像这样链接字段内的文本

echo $this->Html->link($viewnotes['Note']['notes'], array( 'controller'=>'notes', 'action'=>'view',$viewnotes['Note']['id']), array('class'=> 'light_blue'));

但是我希望整个盒子能够被链接起来。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

这样的事情:

$text = '<p class="text">' . $viewnotes['Note']['notes'] . '</p>';
$div = $this->Html->div(null, $text, array('id' => 'notescover'));

echo $this->Html->link(
    $div, 
    array('controller' => 'notes', 'action' => 'view', $viewnotes['Note']['id']),
    array('class' => 'light_blue', 'escape' => false)
);

如果您愿意,也可以通过这样做来压缩它:

echo $this->Html->link(
    '<div id="notescover"><p class="text">' . $viewnotes['Note']['notes'] . '</p></div>', 
    array('controller' => 'notes', 'action' => 'view', $viewnotes['Note']['id']),
    array('class' => 'light_blue', 'escape' => false)
);

您可以将任何您喜欢的内容添加到Html::link()的第一个参数中,但如果您要在其中添加标记,而不仅仅是纯文本,那么在链接中包含escape => false属性非常重要,避免将链接中的HTML特殊字符呈现为文本。

虽然在我看来,当你使用Cake HTML帮助程序来处理任何不简单的事情时,这样的事情变得如此复杂,但是甚至不值得花时间和精力来提出像这样的代码。它还使得阅读代码的方式比它需要的更复杂,特别是当你不得不在以后解密代码时。

答案 1 :(得分:-1)

您可以在Link函数中使用URLHtmlHelper方法

使用链接

$content = "<div id='notescover'>".
           "  <p class='text'>" . $viewnotes['Note']['notes'] . "</p>".
           "</div>";

echo $this->Html->link( $content, 
                        array( 'controller'=>'notes', 'action'=>'view', $viewnotes['Note']['id']), 
                        array('class'=> 'light_blue', 'escape' => false)
);

使用 URL

在HTML内添加URL

<a href="<?= $this->Html->url(array('controller'=>'notes', 'action'=>'view', $viewnotes['Note']['id']), 
                              array('escape' => false)); ?>" 
  class="light_blue">
   <div id='notescover'>
      <p class='text'><?= $viewnotes['Note']['notes']; ?></p>
   </div>
</a>