cakephp3のRoutingを使い、urlに応じてaction先を変えたいと思っています。
メインカテ/大カテ/中カテ/小カテの場合はsmall.ctpに行き
メインカテ/大カテ/中カテ/製品idのように小カテがない場合はdetail.ctpに行きます。
ただ、この場合同じ階層になってしまってdetailかsmallなのかの判別がつかないので、
小カテがないパターンの場合は、下記のように/detail/をいれるようにしていました。
php
1$routes->connect('/:slug/:lslug/:mslug/:sslug', ['controller' => 'categories', 'action' =>'small']); 2$routes->connect('/detail/:slug/:lslug/:mslug/:p_id', ['controller' => 'categories', 'action' =>'detail']);
html
1 2//action --> small 3<a href="<?php echo $this->Url->build(["controller"=>"categories","action"=>"small","slug"=>$mainslug,"lslug"=>$lslug,"mslug"=>$m_name->slug,"sslug"=>$small->slug]) ?>"> 4 <div class="nav"><?php echo $small->name ?></div> 5</a> 6 7 8//action --> detail 9 10<a href="<?php echo $this->Url->build(["controller"=>"categories","action"=>"detail","slug"=>$mainslug,"lslug"=>$lslug,"mslug"=>$m_name->slug,"p_id"=>$p_sku]) ?>"> 11 <div class="nav"><?php echo $p_name ?></div> 12</a>
やりたいことは、コントローラー名や上記のような/detail/など、判別するための文字などをurlに表示させず、別々のaction先に行くようにしたいのですが、判別する方法はあるのでしょうか?
よろしくお願いいたします。
php
1 $routes->connect('/:slug/:lslug/:mslug/:sslug', ['controller' => 'categories', 'action' =>'small']); 2 $routes->connect('/:slug/:lslug/:mslug/:p_id', ['controller' => 'categories', 'action' =>'detail']);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/19 06:31