我想将数据库值设置为URL。 实际上我有产品的ID,所以我想通过从数据库中提取来显示其名称。 目前我通过URL传递整数ID,因此我想要一个与该ID相关的产品名称。
我当前的网址如下:http://example.com/controller/method/1 我希望网址如:http://example.com/controller/method/product-name
答案 0 :(得分:0)
我猜你在控制器方法中使用id作为参数。 类示例扩展CI_Controller { 公共函数方法($ product_name) {echo $ product_name; } }
这会将u product_name作为控制器中的最后一个字段,如controller / method / product_name ..
答案 1 :(得分:-1)
您可以将url中的最后一位作为控制器类方法的参数。
class myClass extends CI_Controller {
public function myMethod ( $product )
{ echo $product; }
}
这会产生网址:http://example.com/myClass/myMethod/anything_goes_here
在您的控制器方法myMethod
中,参数$product
将成为上述网址的最后一部分anything_goes_here
对于此示例,myMethod
中的回显将生成结果anything_goes_here
这不需要重新路由。
如果您根据名称获得产品,那么这个解决方案就可以了,但我不认为这在现实生活中会有好处。例如,如果您有多个具有相同名称的产品会怎么样?
如果您仍想使用产品名称,那么我认为以下方法更好。你将在哪里使用get request uri。
class myClass extends CI_Controller {
public function myMethod ( $product )
{ echo $this->input->get ( 'id' ); echo $product; }
}
并使用这样的网址:http://example.com/myClass/myMethod/anything_goes_here?id=123
在上面的网址中,?id=123
是get uri。这样,您就可以在网址中同时拥有产品名称和产品ID。
希望它有所帮助。