prettyurl が有効になっている場合でも、Yii2 で追加の $_GET パラメータを取得するにはどうすればよいですか?
Paypal-Link のリダイレクトからのフィードバックを読む必要がありますが、私の Yii2 実装に合わせて Paypal-Side の Link-Format を変更することはできません:
http://example.com/controller/action?success=boolean&token=xyz
ご協力いただきありがとうございます!
prettyurl が有効になっている場合でも、Yii2 で追加の $_GET パラメータを取得するにはどうすればよいですか?
Paypal-Link のリダイレクトからのフィードバックを読む必要がありますが、私の Yii2 実装に合わせて Paypal-Side の Link-Format を変更することはできません:
http://example.com/controller/action?success=boolean&token=xyz
ご協力いただきありがとうございます!
Request クラスを使用します。
http://www.yiiframework.com/doc-2.0/yii-web-request.html
print_r(Yii::$app->request->get());
すべての get 変数を配列で返します。print_r($_GET);
それはまっすぐなphpでやっているようなものです。
特定の $_GET 変数が必要な場合は、次のようにアクセスします。
Yii::$app->request->get('varName');
あなたの場合は次のようになります。
$success = Yii::$app->request->get('success');
$token = Yii::$app->request->get('token');
http://www.yiiframework.com/doc-2.0/yii-web-urlmanager.htmlこれは役に立ちます。任意のコントローラーに GET POST メソッドを指定できます。
[
'dashboard' => 'site/index',
'POST <controller:\w+>s' => '<controller>/create',
'<controller:\w+>s' => '<controller>/index',
'PUT <controller:\w+>/<id:\d+>' => '<controller>/update',
'DELETE <controller:\w+>/<id:\d+>' => '<controller>/delete',
'<controller:\w+>/<id:\d+>' => '<controller>/view',];
例えば
'POST <controller:\w+>/<success:\w+>/<token:\w+>' => '<controller>/update',
これは、yii2 が UrlManager で prettyurl を有効にして美しく処理する Paypal からの成功した returnUrl です。
http://multi2.myhost/subscription/subscription/success?token=EC-8GE539098H175763M
サブスクリプション モジュールと、SubscriptionController というコントローラー クラス、および actionSuccess と actionCancel というアクションを作成しました。
Paypal リダイレクトは 1 つのパラメーターのみを渡します。トークン。2 つのパラメーターは必要ありません。あなたの成功とキャンセルの returnurl は次のようになります。
コントローラー/アクションまたはサブスクリプション/成功/
コントローラー/アクションまたはサブスクリプション/キャンセル/
あなたの成功 returnUrl:
SubscriptionController/actionSuccess($token)
public actionSuccess($token)
{
}
そしてあなたのキャンセルreturnUrl:
SubscriptionController/actionCancel($token)
public actionCancel($token)
{
}
このメソッドを使用すると、別のコントローラー アクションがこの問題を解決するため、success および cancel 変数を処理するための 2 番目のパラメーターは必要ありません。PrettyUrl 管理を満たすアクションの名前に「成功」を組み込みます。
次のコードで、マーチャント設定の returnUrl の両方を変更する必要があります。
$merchantPreferences = new MerchantPreferences();
$merchantPreferences->setReturnUrl($model->merchant_preference_returnurl)
->setCancelUrl($model->merchant_preference_cancelurl)
したがって、次の必要はありません。
$request = Yii::$app->request;
$get = $request->get();
$token = $request->get('token');
アクションの開始時に。