2

おそらくこれは簡単なことですが、今は頭がわかりません。

名前のないオプションのパラメーターを使用すると、次の問題が発生します。2 つの固定パラメーターと 2 つのオプション パラメーターを持つコントローラーに次のアクションがあるとします。

function action ($param1, $param2, $param3=NULL, $param4=NULL) {
//any code
}

$param3 と $param4 は、両方存在することも、存在しないことも、2 つのいずれかが存在することもあります。何も設定されていないか、4 つすべてが設定されているか、最初の 3 つのパラメータが設定されていれば、すべて正常に動作します。例えば

www.domain.com/controller/action/value1/value2/value3/

param3が省略されている場合、問題が発生します

www.domain.com/controller/action/value1/value2//value4/

param2 と param4 の間の // を未設定の param3 として処理するよう Cake に指示する方法はありますか? 現在、パラメータは「間違った」変数に割り当てられています。

$param1= value1
$param2= value2
$param3= value4
$param4= NULL

私が持ちたいのは次のとおりです

$param1= value1
$param2= value2
$param3= NULL
$param4= value4

ここでの助けは大歓迎です。

どうもありがとう..

ベスト、セバスチャン

4

2 に答える 2

3

CakePHPではそれを行うことはできません。PHPではさらに多くのことができます。パラメータの順序を定義するときは、すべてのパラメータに値が必要です。

名前付きパラメーターを使用することをお勧めします。次のことが可能になります。

http://www.example.com/controller/action/param1:value1/param2:value2/param4:value4/

詳細については、名前付きパラメーターのドキュメントを参照してください。

編集:わかりませんが、これもできるはずです:

www.domain.com/controller/action/value1/value2//value4/

しかし、名前付きパラメーターのオプションは間違いなく優れています!

于 2012-11-19T11:35:46.920 に答える
0

3番目と4番目のパラメータを渡すことができます.nullではないパラメータが最初に渡され、次にURLを生成している場所で2番目に渡される必要があります。

于 2012-11-19T15:41:03.237 に答える