ThinkPHP 3.2.2跨控制器調用方法


   所謂跨控制器調用,指的是在一個控制器中調用另一個控制器的某個方法。在ThinkPHP中有三種方式實現跨控制器調用:

  • 直接實例化;
  • A()函數實例化;
  • R()函數實例化。

  (1)直接實例化

   直接實例化就是通過new關鍵字實例化相關控制器,例如:

1 $goods = new GoodsController()  //直接實例化Goods控制器類
2 $info = $goods->info();    //調用Goods控制器類的info()方法

   需要注意的是,如果實例化的控制器與當前控制器不在同一目錄下,需要指定絕對路徑。例如要實例化Admin模塊下的User控制器,代碼如下:

1 $goods = new \Admin\Controller\UserController();

   (2)A()函數實例化

     ThinkPHP提供了A()函數實例化其他控制器,使用方法如下:

1 $goods = A('Goods');  //A()函數實例化GoodsController類
2 $info = $goods->info();  //調用Goods控制器類的info()方法

     從上述代碼可以看出,A()函數相對直接實例化的方式簡潔很多,僅需要傳入控制器名即可。A()函數同樣可以實例化其他模塊下的控制器,例如:

1 $goods = A('Admin/Goods');

 

  (3)R()函數實例化

   R()函數的使用與A()函數基本一致,唯一不同的是,R()函數可以在實例化控制器的時候把操作方法一並傳進去,如此就省略了調用操作方法的步驟,例如:

1 $info = R('Admin/Goods/info');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM