url 根据类型和名称在 codeigniter 中进行路由
url routing in codeigniter according to the type and name
我已阅读 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)/";
最终Url路线后:www.website.com/xyz-name/abc-type/1
现在唯一的问题是我的最终路线是否正确?
这样试试..
$route['product_name-product_type/(:num)'] = "product_controller/getSingle_product_function/";
(:num)
is a wildcard that match a segment containing only numbers.
$route['(:any)/(:num)'] = 'product_controller/getSingle_product_function//';
请记住,这必须位于路由文件中的较低位置。我通常会把它放在 default_controller.
的正上方
public function getSingle_product_function($product_details, $product_id) {
$product = explode('-', $product_details);
$name = $product[0];
$type = $product[1];
}
订单将按照 $1/$2 的顺序传递到控制器函数中。
我已阅读 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)/";
最终Url路线后:www.website.com/xyz-name/abc-type/1
现在唯一的问题是我的最终路线是否正确?
这样试试..
$route['product_name-product_type/(:num)'] = "product_controller/getSingle_product_function/";
(:num)
is a wildcard that match a segment containing only numbers.
$route['(:any)/(:num)'] = 'product_controller/getSingle_product_function//';
请记住,这必须位于路由文件中的较低位置。我通常会把它放在 default_controller.
的正上方public function getSingle_product_function($product_details, $product_id) {
$product = explode('-', $product_details);
$name = $product[0];
$type = $product[1];
}
订单将按照 $1/$2 的顺序传递到控制器函数中。