欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ThinkPHP3.1新特性之Action參數(shù)綁定

 更新時(shí)間:2014年06月19日 11:22:08   投稿:shichen2014  
ThinkPHP3.1版的Action參數(shù)綁定功能提供了URL變量和操作方法的參數(shù)綁定支持,這一功能可以使得你的操作方法定義和參數(shù)獲取更加清晰,也便于跨模塊調(diào)用操作方法,需要的朋友可以參考下

ThinkPHP3.1版的Action參數(shù)綁定功能提供了URL變量和操作方法的參數(shù)綁定支持,這一功能可以使得你的操作方法定義和參數(shù)獲取更加清晰,也便于跨模塊調(diào)用操作方法。這一新特性對(duì)以往的操作方法使用沒(méi)有任何影響,你也可以用新的方式來(lái)改造以往的操作方法定義。

Action參數(shù)綁定的原理是把URL中的參數(shù)(不包括分組、模塊和操作地址)和控制器的操作方法中的參數(shù)進(jìn)行綁定。例如,我們給Blog模塊定義了兩個(gè)操作方法read和archive方法,由于read操作需要指定一個(gè)id參數(shù),archive方法需要指定年份(year)和月份(month)兩個(gè)參數(shù)。

class BlogAction extends Action{
  public function read($id){
    echo 'id='.$id;
    $Blog = M('Blog');
    $Blog->find($id);
  }
  public function archive($year='2012',$month='01'){
    echo 'year='.$year.'&month='.$month;
    $Blog = M('Blog');
    $year  =  $year;
    $month =  $month;
    $begin_time = strtotime($year . $month . "01");
    $end_time = strtotime("+1 month", $begin_time);
    $map['create_time'] = array(array('gt',$begin_time),array('lt',$end_time));
    $map['status'] =  1;
    $list = $Blog->where($map)->select();
  }
 }

URL的訪問(wèn)地址分別是:

http://serverName/index.php/Blog/read/id/5
http://serverName/index.php/Blog/archive/year/2012/month/03

兩個(gè)URL地址中的id參數(shù)和year和month參數(shù)會(huì)自動(dòng)和read操作方法以及archive操作方法的同名參數(shù)綁定。
輸出的結(jié)果依次是:

id=5
year=2012&month=03

Action參數(shù)綁定的參數(shù)必須和URL中傳入的參數(shù)名稱一致,但是參數(shù)順序不需要一致。也就是說(shuō)

http://serverName/index.php/Blog/archive/month/03/year/2012

和上面的訪問(wèn)結(jié)果是一致的,URL中的參數(shù)順序和操作方法中的參數(shù)順序都可以隨意調(diào)整,關(guān)鍵是確保參數(shù)名稱一致即可。
如果用戶訪問(wèn)的URL地址是(至于為什么會(huì)這么訪問(wèn)暫且不提):

http://serverName/index.php/Blog/read/

那么會(huì)拋出下面的異常提示:

參數(shù)錯(cuò)誤:id

報(bào)錯(cuò)的原因很簡(jiǎn)單,因?yàn)樵趫?zhí)行read操作方法的時(shí)候,id參數(shù)是必須傳入?yún)?shù)的,但是方法無(wú)法從URL地址中獲取正確的id參數(shù)信息。由于我們不能相信用戶的任何輸入,因此建議你給read方法的id參數(shù)添加默認(rèn)值,例如:

  

 public function read($id=0){
    echo 'id='.$id;
    $Blog = M('Blog');
    $Blog->find($id);
  }

這樣,當(dāng)我們?cè)L問(wèn)

http://serverName/index.php/Blog/read/

的時(shí)候 就會(huì)輸出

id=0

當(dāng)我們?cè)L問(wèn)

http://serverName/index.php/Blog/archive/

的時(shí)候,輸出:

year=2012&month=01

相關(guān)文章

最新評(píng)論