HtmlHelper

Posted by muchag | CakePHP 3.x | 2018-02-26 (月) 15:11:27

Html ラグ生成ヘルパー。
公式:Html

【環境】
CakePHP: 3.5.11
php: 7.1.5
リンク

動画や音声ファイルへのリンクは media メソッドが別にあるみたいなので、
a タグ用メソッドってことかしらね。

公式:Html リンクの作成

/vendor/cakephp/cakephp/src/View/Helper/HtmlHelper.php

public function link($title, $url = null, array $options = [])

第1引数:表示文字列
第2引数:URL。省略可
第3引数:オプション。省略可
上記処理を見ればわかるけど、内部的には UrlHelper::build メソッドを呼んでいる。

URL
書式

上記公式を見る限り、下記のようになっているので、それぞれの書き方が可能っぽい。

  • ‘/pages/home’,
  • “recipes/view/6”,
  • [‘controller’ => ‘Recipes’, ‘action’ => ‘delete’, 6],
パラメータ

['controller' => 'Recipes', 'action' => 'delete', 6],

この書式を用いたときの 6 がパラメータ。
これで、/recipes/view/6 となる。


['controller' => 'Recipes', 'action' => 'delete', 'id' => 6],

このような書き方もあるみたいだけど、これだとリンク文字列は


となり


public function view($id = null)

としているコントローラ側では、$id = null となってしまう。

ちと不思議。。。


echo $this->Url->build([
    "controller" => "Posts",
    "action" => "search",
    "?" => ["foo" => "bar"],
    "#" => "first",
]);

こうすると


こうなるらしい。

名前付きルート

なんていうのも載っていたけど、これはほぼルーティングの話なので
今回はパス!

絶対 URL

['controller' => 'Dashboards', 'action' => 'index', '_full' => true]

このように _full を指定してやることで、絶対 URL になるとのこと。


‘_full’ => は、省略可能?。

拡張子つき

echo $this->Url->build([
    "controller" => "Posts",
    "action" => "list",
    "_ext" => "rss",
]);

オプション
  • class
  • confirm
    • JavaScript の confirm() ダイアログを表示
  • escape
    • $title の HTML 特殊文字は HTML エンティティーに変換
    • リンクの属性のエスケープも無効
    • デフォルトは true
  • escapeTitle
    • 属性ではなくタイトルのエスケープだけを無効
  • fullBase
    • デフォルトは false
  • target
  • title
  • その他不明
CakePHP 3.x | 2018-02-26 (月) 15:11:27 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment