1

prettyurl が有効になっている場合でも、Yii2 で追加の $_GET パラメータを取得するにはどうすればよいですか?

Paypal-Link のリダイレクトからのフィードバックを読む必要がありますが、私の Yii2 実装に合わせて Paypal-Side の Link-Format を変更することはできません:

http://example.com/controller/action?success=boolean&token=xyz

ご協力いただきありがとうございます!

4

5 に答える 5

0

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');
于 2015-03-19T23:25:34.403 に答える
0

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',
于 2015-03-03T09:14:42.090 に答える
0

これは、yii2 が UrlManager で prettyurl を有効にして美しく処理する Paypal からの成功した returnUrl です。

http://multi2.myhost/subscription/subscription/success?token=EC-8GE5390​​98H175763M

サブスクリプション モジュールと、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');

アクションの開始時に。

于 2019-10-06T20:24:56.223 に答える