1

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'));

しかし、私はボックス全体をリンクさせたいと思っています。

どうやってやるの?

4

2 に答える 2

4

このようなもの:

$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 ヘルパーを使用すると、このようなことは非常に複雑になりますが、このようなコードを考え出すのに時間と労力を費やす価値さえありません。また、特に後でコードを解読する必要がある場合、コードの読み取りが必要以上に複雑になります。

于 2012-11-06T12:57:39.533 に答える
-1

関数内でLinkまたはURLメソッドを使用できますHtmlHelper

リンクの使用

$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>
于 2020-04-06T15:18:11.067 に答える