Codeigniter路由器$ this-> uri->段不完全正常工作

时间:2014-08-30 11:52:30

标签: php codeigniter

我有双向访问权限:

1 : http://website.com/main/selectBaivietTag/video/chon-loc/2 //$this->uri->segment(5)=2
2 : http://website.com/video/tag/chon-loc/2 //$this->uri->segment(5)=1

我的路由器

$route['([a-z\-]+)/tag/([a-z\-]+)/(:num)']='main/selectBaivietTag/$1/$2';
$route['([a-z\-]+)/tag/([a-z\-]+)']='main/selectBaivietTag/$1/$2';

我想访问第二个但是$ this-> uri-> segment(5)= 2 not = 1,请帮助我! 非常感谢!

3 个答案:

答案 0 :(得分:1)

尝试使用

第一个链接

1 : http://website.com/main/selectBaivietTag/video/chon-loc/2

你可以用这个

获得你的价值
$this->uri->segment(5)

这将给你的价值,即2 但对于第二个链接

2 : http://website.com/video/tag/chon-loc/2

你可以用这个

获得你的价值
$this->uri->segment(4) 

这将给你的价值,即2

答案 1 :(得分:0)

尝试使用

$this->uri->rsegment(5); :))

https://www.codeigniter.com/user_guide/libraries/uri.html

答案 2 :(得分:0)

尝试以下代码:

abstract class BaseItem
class AmericanItem : BaseItem()
class EuropeanItem : BaseItem()

interface ItemParser<T : BaseItem> {
    fun parse(item: T)
}

class AmericanItemParser : ItemParser<AmericanItem> {
    override fun parse(item: AmericanItem) {
        println("AmericanItemParser")
    }
}

class EuropeanItemParser : ItemParser<EuropeanItem> {
    override fun parse(item: EuropeanItem) {
        println("parsing EuropeanItem")
    }
}

fun main(args: Array<String>) {
    val hashMap = HashMap<Class<out BaseItem>, ItemParser<*>>()
    hashMap.put(AmericanItem::class.java, EuropeanItemParser())
    hashMap.put(EuropeanItem::class.java, AmericanItemParser())

    val inputItem = EuropeanItem()
    val foundParser = hashMap[inputItem.javaClass]
    foundParser?.parse(inputItem)
}

对我来说很好。