php-タイプと名前に応じたcodeigniterのURLルーティング
CIのユーザーガイドにあるURLルーティングのトピックを読みました。
初めてやっているので、テクニックを誤解しているかもしれませんので、お気軽にご指摘ください。
製品に応じたカスタムURLの作成に取り組んでいます。 現在、Idによって単一の製品詳細を取得しています。
このアンカータグを使用して、コントローラーにIDを送信しました。
<a href="<?php echo base_url("product_controller/getSingle_product_function/{$value->product_id}"); ?>">
私のURLは次のとおりです: myWebsite/product_controller/getSingle_product_function/1
URLに必要なものは次のとおりです: myWebsite/product_name-product_type/1
このURLを取得するには、routes.phpでルートを作成する必要がありますが、問題は、製品名を取得してroutes.phpに入力する方法、または取得する方法です。
$route['product_name-product_type/1'] = "product_controller/getSingle_product_function/1";
更新された作業:
いくつかの回答を見た後、次のようなアンカーを作成しました。
<a href="<?php echo base_url("product_controller/getSingle_product_function/product_name/product_type/produt_id"); ?>">
ルート前のURL:www.website.com/controller/function/xyz-name/abc-type/1
&次にルートを作成しました
$route['(:any)/(:any)/(:any)/(:num)'] = "product_controller/product_function/(:any)/(:any)/(:any)/$1";
ルート後の最終URL:www.website.com/xyz-name/abc-type/1
今、唯一の問題は、私の最終ルートが正しいかどうかということです。
答え :
解決策:
このようにしてみてください。
$route['product_name-product_type/(:num)'] = "product_controller/getSingle_product_function/$1";
(:num)
は、数字のみを含むセグメントに一致するワイルドカードです。
答え :
解決策:
$route['(:any)/(:num)'] = 'product_controller/getSingle_product_function/$1/$2';
これはroutesファイルで低くする必要があることを覚えておいてください。通常、これはdefault_controllerのすぐ上に配置します。
public function getSingle_product_function($product_details, $product_id) {
$product = explode('-', $product_details);
$name = $product[0];
$type = $product[1];
}
注文は$1/$2の順序でコントローラー関数に渡されます。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。