今日のOJT課題で聞かれたのが、「リンク出力」
リンクを貼って、そのデータに応じた画面に遷移させたいというもの。
CakePHPによるリンク出力の構文はこちら
$this->Html->link('リンク出力させたい文字、値',
array('controller' => 'コントローラ名', 'action' => 'アクション名','与えたいパラメータ'),
array('target' => '_blank'),
'遷移します'));
controllerには、遷移先の画面を制御しているコントローラ名
actionには、遷移先のView側の名前
与えたいパラメータには、よく入るのは遷移先のView側の画面に対応したidじゃないですかね
僕がよく見るのはそれが多いです。
上手く遷移してないとぶっ壊れます。
※1
array('target' => '_blank')について
$this->Html->link()の第3引数にあるarray('target' => '_blank')
これを入れると、リンクを押下した時に新しいタブを開いて遷移してくれます
なかなか便利
最後に文字列を入れてみると、リンクを押下した時にポップアップ"遷移します"が表示されます。
JavaScriptで言うところのwindow.confirm('遷移します')
という制御をしなくてもいいということですね
※2
他のやり方だと
$this->Html->link('リンク出力させてたい文字、値',
array('controller' => 'コントローラ名/アクション名', 'action' => '与えたいパラメータ'));
コントローラ名とアクション名をまとめてしまって'controllerに指定する
これでもリンク出力がちゃんと機能するようです。
無理にまとめずにちゃんと書くのが安全ですけどね。
次はデータの取得について書こうかと思います。後輩ちゃんが一番頭を抱えたところ…
自分も頭を抱えたところ…
以上です。