例えばController Articles
、action edit
で/articles/edit/{article_id}
の様なURLが作りたい時
1. Htmlヘルパーを使う
<?php // $article_id = 1; echo $this->Html->link('編集', [ 'controller' => 'Articles', 'action' => 'add', $article_id ], ['class' => 'btn']);
<a href="/articles/add/1" class="btn">編集</a>
というaタグが出力されます。
2. Urlヘルパーを使う
<?php // $article_id = 1; $url = $this->Url->build([ 'controller' => 'Articles', 'action' => 'add', $article_id ]); echo $url
/articles/add/1
というURLが作られます。
Html->link(), $Url->build() 共に配列のactionの後の値にキーを付けて渡すとURLのパラメータになる
1. Htmlヘルパー
<?php // $article_id = 1; echo $this->Html->link('編集', [ 'controller' => 'Articles', 'action' => 'add', 'article_id' => $article_id ], ['class' => 'btn']);
出力
<a href="/articles/add?article_id=1" class="btn">編集</a>
2. Urlヘルパー
<?php // $article_id = 1; $url = $this->Url->build([ 'controller' => 'Articles', 'action' => 'add', 'article_id' => $article_id ]); echo $url
出力
/articles/add?article_id=1
このURLはControllerの引数でidを受け取れないので注意が必要
<?php // ArticlesController namespace App\Controller; use Cake\Controller\Controller; class ArticlesController extends AppController { /* 略 */ public function edit($article_id = null) { // /articles/add?article_id= のパラメータでアクセスすると 引数の$article_id は null になっている } }
感想
もしかして、CakePHP3の情報ってまだ少ないのでしょうか...
CakePHPやってみるぞーと始めたのですがCakePHP3で検索しても本もあまり見当たらず...
[参考]
大室家 (1) 限定版 (IDコミックス 百合姫コミックス)
- 作者: なもり
- 出版社/メーカー: 一迅社
- 発売日: 2013/08/01
- メディア: コミック
- この商品を含むブログ (9件) を見る