したがって、ユーザーは次のように ZF2 アプリのページに誘導されます。
http://example.com/some/route/variable?auth=1234&channel=1234&tz=1234&locale=&client=1234
コントローラーはフォームをロードします。
if ($prg instanceof Response) {
return $prg
} elseif ($prg === false) {
return new ViewModel([
'form' => $this->transferForm,
]);
}
そしてビューで:
$form = $this->form;
$form->setAttribute('action', $this->url('some/route',[],true));
$form->setAttribute('method', 'post');
私がしたいことは、ユーザーが同じインバウンドルートに投稿するフォームを呼び出すときです。
http://example.com/some/route/variable?auth=1234&channel=1234&tz=1234&locale=&client=1234
これを行う愚かな簡単な方法はありますか?
または、各パラメーターを取得して、明示的にターゲット uri の形式に配置する必要がありますか?:
$form->setAttribute('action', $this->url('some/route',[],[query => [''] ]));
現状では、これに対処するためのヘルパーを作成しました。
namespace Some\View\Helper;
use Zend\View\Helper\AbstractHelper;
class ParamsHelper extends AbstractHelper {
public function __invoke()
{
$param1 = (isset($_GET['param1'])) ? $_GET['param1'] : '';
$param2 = (isset($_GET['param2'])) ? $_GET['param2'] : '';
$param3 = (isset($_GET['param3'])) ? $_GET['param3'] : '';
$param4 = (isset($_GET['param4'])) ? $_GET['param4'] : '';
$param5 = (isset($_GET['param5'])) ? $_GET['param5'] : '';
$queryParams = (null == $auth) ? [] : ['query' =>
[
'param1' => $param1 ,
'param2' => $param2 ,
'param3' => $param3 ,
'param4' => $param4,
'param5' => $param5
]
];
return $queryParams;
}
}
これで問題は解決しますが、問題を解決するための方法は長く、それほど動的ではないようです...