今日の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に指定する

これでもリンク出力がちゃんと機能するようです。

無理にまとめずにちゃんと書くのが安全ですけどね。

 

次はデータの取得について書こうかと思います。後輩ちゃんが一番頭を抱えたところ…

自分も頭を抱えたところ…

 

以上です。