スライドショー

【CakePHP入門】linkメソッドの使い方(HtmlHelper)

こんにちは!フリーエンジニアのヤマシタです。

CakePHPには、HTMLに関連するオプションを簡単に使用することができるHtmlHelperという機能があります。

この記事では、

・HtmlHelperとは?
・HtmlHelperのlinkメソッドとは
・HtmlHelperのlinkメソッドの基本的な使い方

という基本的な内容から、

・ページ内のリンクを作成する方法
・URLにクエリ文字列を指定する方法

などの応用的な使い方について解説します。

ここではHtmlHelperのlinkメソッドについて、詳しく解説していきます!

HtmlHelperとは

HtmlHelperとは、さまざまなHTMLのタグを作成するための機能です。

HtmlHelperを使用すれば、HTMLのリンクを作成したり画像を出力するなど、HTMLに関連するさまざまなオプションを簡単に使用できる便利な機能です。

Cake\View\Helper\HtmlHelper(View $view, array $config = [])

HtmlHelperには、さまざまなメソッドが用意されています。

例えば、文字コードを指定する場合は以下のように記述します。

echo $this->Html->charset('ISO-8859-1');

HtmlHelperの使い方

linkメソッドとは

HtmlHelperのlinkメソッドは、アクションを実行したときに指定したURLへ移動するための機能です。

linkメソッドは、以下のように2種類の記述方法があります。

$this->Html->link(‘タイトル’, $URL, $オプション);
$this->Html->link(‘タイトル’, ['controller' => 'コントローラ名', 'action' => 'アクション名', 引数1,$クエリ文字列オプション]);

1つ目のオプションを指定すればタグの属性を指定したり、絶対URLを指定することもできます。

2つ目については、クエリ文字列を指定するの章で詳しく取り上げます。

linkメソッドの使い方

ここではHtmlHelperの数あるメソッドでも使用頻度の高いlinkメソッドを使用して、リンク付きのボタンを作成してみましょう。

以下にHtmlHelperのlinkメソッドを使用した、サンプルを記述します。

Cake/src/Controller/SampleController.php

<?php

namespace App\Controller;

use App\Controller\AppController;

class SampleController extends AppController
{

  public function index() {

  }
}

Cake/src/Template/Sample/index.ctp

<?php

echo $this->Html->link(
    'Samurai',
    'http://www.sejuku.net/',
    ['class' => 'button', 'target' => '_blank']
);

?>

このプログラムを実行すると、「Samurai」ボタンのある画面が表示されます。

「Samurai」ボタンをクリックすると、侍エンジニアのホームページに飛ぶことができます。

これはHtmlHelperのlinkメソッド使用時に、HTMLで以下のようにURLのリンクが指定されたボタンが作成されるためです。

<a href="http://www.sejuku.net/" class="button" target="_blank">Samurai</a>

ページ内リンクを作成する

linkメソッドでは、ページ内のリンクを作成することもできます。

先述したURL同様にlinkメソッドの第二引数に、ページのパスを指定します。

echo $this->Html->link(
    'Enter',
    '/home/samurai',
    ['class' => 'button', 'target' => '_blank']
);

このサンプルでは、パス「/home/samurai」へのリンク付きのボタンが生成されます。

<a href="/app名称/home/samurai" class="button" target="_blank">Enter</a>

なお、app名称の部分にはcakePHPをインストールしたフォルダ名が反映されます。

クエリ文字列を指定する

linkメソッドでは、クライアントからWebサーバへ送信するときに渡すパラメータ(クエリ文字列)を指定することができます。

クエリ文字列は、以下のように指定します。

echo $this->Html->link('fruits', [
    'controller' => 'fruits',
    'action' => 'view',
    1,
    '?' => ['apple'=>'100yen', 'orange'=>'80yen', 'melon'=>'500yen']
]);

このサンプルを実行すると、htmlには以下のように出力されます。

 <a href="/app名称/fruits/view/1?apple=100yen&orange=80yen&melon=500yen">fruits</a>

URLの末尾に指定したデータが反映されていることがわかりますね!

まとめ

ここではHtmlHelperのlinkメソッドを使用した、URLの指定方法やページ内リンクの指定方法、クエリ文字列を指定する方法などについて解説しました。

HtmlHelperの数あるメソッドの中でも、linkメソッドは使用する頻度が高いと言えますので、この機会にぜひ覚えておきましょう。

もし、linkメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説