我可以在routes.php [codeigniter]中使用Model或Helper函数吗?

时间:2015-10-06 09:37:09

标签: codeigniter

我想将数据库值设置为URL。 实际上我有产品的ID,所以我想通过从数据库中提取来显示其名称。 目前我通过URL传递整数ID,因此我想要一个与该ID相关的产品名称。

我当前的网址如下:http://example.com/controller/method/1 我希望网址如:http://example.com/controller/method/product-name

2 个答案:

答案 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。

希望它有所帮助。