を支配します。 positionIds
をArrayに送信することは可能ですか? :私はURLはこのようなものになるだろうので、あなたは配列として取得したい理解できるようにYiiは私のURLルールは以下の通りですurlManager
'product-<typeproduct:.{1,255}>-prd-<positionIds:array[\d\-]+>.html' => 'site/products/bycate',
を支配します。 positionIds
をArrayに送信することは可能ですか? :私はURLはこのようなものになるだろうので、あなたは配列として取得したい理解できるようにYiiは私のURLルールは以下の通りですurlManager
'product-<typeproduct:.{1,255}>-prd-<positionIds:array[\d\-]+>.html' => 'site/products/bycate',
:
'/product-2-prd-222,223,224.html'
どこ222,223,224
あなたは配列で取得したいpositionIdさんです。
class ProductsUrlRule extends UrlRule
{
public function parseRequest($manager, $request)
{
if (preg_match("/product-([0-9]+)-prd-([0-9,]+).html/",$request,$vars)===3) {
$typeProduct = $var[1];
$productIds = explode(',',$var[2]);
return [
'controller/action',
'typeproduct'=> $typeProduct,
'positionIds'=>$productIds
];
}
}
}
これは私がこのような何かに上記のあなたを示した例のURLを解析します:
'?r=controller/action&typeproduct=2&positionIds[]=222&positionIds[]=223&positionIds[]=224'
I知っている、これは次のようになりますのurlruleクラスを作成せずに行うことができないのよう 当然、controller/action
をコントローラー/アクションのペアに置き換え、その後でフィールドを検証する必要があります。
私はhtaccesを使用していますか? –
私のhtaccessファイル: ExpiresDefaultディレクティブA0
申し訳ありませんが、あなたの質問はあまり意味がありません。もう少し明確にして、私たちがあなたを助けることができるようにしてください。たとえば、両方のurlManagerRulesが同じで、違いはありません。 –
ahh私は、サイトで使用されているエディタには、削除した文字が削除されていると思います。 OKは、ので、私のルールは次のとおりです。 '製品 - : - 製品 -。htmlの' => 'サイト/製品/ bycate'、 私が欲しいですvriableはこのルールで配列型になっているので、私のPHPアクションでは(producId)になると、配列型のproducIdが返されます –
書式、グラマー、スペルを変更しました。 – LuFFy