亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php的CI框架中_remap的怎么用

php的CI框架中_remap的怎么用

PHP
慕的地8271018 2019-03-18 18:11:21
是php的CI框架中的_remap對uri有什么作用,看文檔看不明白,博客都是一個版本也不是很清楚,可以舉個例子說明一下_remap的作用嗎
查看完整描述

1 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

如果你的控制包含一個 _remap() 方法,那么無論 URI 中包含什么參數時都會調用該方法。 它允許你定義你自己的路由規則,重寫默認的使用 URI 中的分段來決定調用哪個方法這種行為。

很簡單,如果有_remap 存在,那么它始終會被調用,你如你在url中指定的A方法,可以在此函數中讓程序實際執行B方法。

舉個例子,比如 我可以讓某些方法公用一個url地址

GET /comments 列出所有評論

POST /comments 創建新評論

如果沒有_remap, 我可以在一個方法中,判斷請求方式,如果是GET執行列出評論的方法,如果是POST 就執行創建評論的邏輯。

有了_remap 就可以單獨兩個方法控制,比如:


public function comments($params) 
{
    //list comments
}

public function _comments_posts($params)
{
    //此方法屬于CI私有控制器方法,不能通過url直接請求,可以起到保護方法的作用
    //add comments
}

public function _remap($method, $params = [])
{
    if ($_SERVER["REQUEST_METHOD"] == 'GET') {
        return call_user_func_array([$this, $method], $params);
    } elseif ($_SERVER["REQUEST_METHOD"] == 'POST') {
        return call_user_func_array([$this, '_'.$method.'_post'], $params);
    }  
}

當然,還有其他用途,可以按照需求具體使用。

查看完整回答
反對 回復 2019-03-18
  • 1 回答
  • 0 關注
  • 413 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號