2017-12-14 10 views
0

を支配します。 positionIdsをArrayに送信することは可能ですか? :私はURLはこのようなものになるだろうので、あなたは配列として取得したい理解できるようにYiiは私のURLルールは以下の通りですurlManager

'product-<typeproduct:.{1,255}>-prd-<positionIds:array[\d\-]+>.html' => 'site/products/bycate', 
+0

申し訳ありませんが、あなたの質問はあまり意味がありません。もう少し明確にして、私たちがあなたを助けることができるようにしてください。たとえば、両方のurlManagerRulesが同じで、違いはありません。 –

+0

ahh私は、サイトで使用されているエディタには、削除した文字が削除されていると思います。 OKは、ので、私のルールは次のとおりです。 '製品 - : - 製品 - 。htmlの' => 'サイト/製品/ bycate'、 私が欲しいですvriableはこのルールで配列型になっているので、私のPHPアクションでは(producId)になると、配列型のproducIdが返されます –

+0

書式、グラマー、スペルを変更しました。 – LuFFy

答えて

0

'/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をコントローラー/アクションのペアに置き換え、その後でフィールドを検証する必要があります。

+0

私はhtaccesを使用していますか? –

+0

私のhtaccessファイル: ExpiresDefaultディレクティブA0 <のIfModule mod_headers.c> ExpiresActive | ICO | PDF | aviファイル| MOV | PPT |ドキュメント| mp3 | WMV | wavファイルを。 | JPG | JPEG | PNG | GIF | MP4 | SWF)$ "> ExpiresDefaultディレクティブA259200 ヘッダーアペンドのCache-Control "公共" ExpiresDefaultディレクティブA7200 ヘッダーは、任意ののCache-Control "プロキシ再検証" 満足を追加しますRewriteEngine on オプション+ FollowSymLinks IndexIgnore */* RewriteRule。 index.php RewriteRule^jobs - ([0-9a-zA-Z \ - ] +) - pos - ([0-9] +)\ .html $ offres.html?id [] = $ 2 [L] –

関連する問題