はじめに
お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 しかし、Laminas MVCでは必要な要件を満たさないことが分かってとん挫していた。
そこで、次の候補としてLaravelを挙げて、必要な要件を満たせるかどうかを一歩ずつ調査していく。
要件(4)
4つ目の要件は、「複数のモジュール間で行き来ができること」。
なのだが、そもそもLaravelにはモジュールという概念がなくて、前回検証したように、redirect/forward先のURLを任意に変えてあげれば良いだけ。
ただ、forwardの際に渡されたパラメータが引き継げるかどうかは検証できていないので、その点に絞って調査していく。
導入
こちらでセットアップした環境を(コピーして)使っていく。
私は以下のようにコピーを作成。
cp -pr laravel-setup-3-forward-redirect laravel-setup-4-forward-parameters cd laravel-setup-4-forward-parameters
設定・実装
app/Http/Controllers/ForwardedController.phpを以下のように編集する。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ForwardedController extends Controller { public function firefox() { $a = isset($_GET['a']) ? $_GET['a'] : 'N/A'; $c = isset($_GET['c']) ? $_GET['c'] : 'N/A'; return view('forwarded.firefox', ['a' => $a, 'c' => $c]); } public function others() { $a = isset($_GET['a']) ? $_GET['a'] : 'N/A'; $c = isset($_GET['c']) ? $_GET['c'] : 'N/A'; return view('forwarded.others', ['a' => $a, 'c' => $c]); } }
resources/views/forwarded/firefox.tplとresources/views/forwarded/others.tplに以下の記述を追記する。
<br>
a={$a}, c={$c}
動作確認
http://<your-ip-address>/laravel-setup-4-forward-parameters/public/forward?a=b&c=dへアクセスする
Firefoxの場合
Forwarded Firefox view a=b, c=d
Forwarded Others view a=b, c=d
まとめ
- forwardの際に、パラメータが引き継がれることが確認できた