ThinkPHP3.2版本對於Model的使用


THinkphp3.2的改動很大,特別是應用了命名空間的概念,這個命名空間很類似於.NET和Java的命名空間,通過引用就可以調用,由於前期一直是搞.NET,對命名空間自認為是比較了解的,在沒有完全理解ThinkPHP3.2手冊的下進行了開發,導致在實例化Model下出現了語法錯誤,找了很久發現了其中的問題。

首先我在Home中的Model中新建了一個UserModel

  1. <?php
  2.  
  3. namespace Home\Model;
  4. use Think\Model;
  5. class UserModel extends Model{
  6.    /**
  7.     * 數據庫連接
  8.     * @var unknown_type
  9.     */
  10.    protected $connection = 'DB_Localhost';
  11.  
  12.    /**
  13.     * 表名
  14.     * @var unknown_type
  15.     */
  16.    protected $tableName = 'User';
  17.  
  18.    /**
  19.     * @param unknown $data
  20.     * @return Ambigous <\Think\mixed, boolean, string, unknown>|number
  21.     */
  22.    public function createUser($data){
  23.       echo '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微軟雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>成功調用<b>UserModel</b>!';
  24. }

 

然后就是在控制器中調用,由上代碼可以,UserModule的命名空間是Home\Model,自然在控制器中調用就引用即可

 

  1. <?php
  2. namespace Home\Controller;
  3.  
  4. use Home\Model;
  5. use Think\Controller;
  6. class IndexController extends Controller {
  7.     public function index(){
  8.        $userModel=new UserModel();
  9.        $userModel->createUser($data);
  10.       // $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微軟雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>歡迎使用 <b>ThinkPHP</b>!</p><br/>[ 您現在訪問的是Home模塊的Index控制器 ]</div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
  11. // $this->show('hello word');
  12.     }
  13. }

 

引用命名空間Home\Model,然后直接調用new就好了,直接請求

理想很美好,現實很骨感,急忙忙的請求,等待我們的是錯誤頁面。提示的錯誤居然是找不到UserModel,這糾結啊!明明是引用了,怎么就是找不到恩,很是糾結啊!將UserModel粘貼了很多次,也將Home/Model命名空間粘貼復制了很多次,可是就是找不到啊!崩潰的節奏啊。

沒辦法了就去Thinkphp3.2的使用手冊去查看。給出的例子是

  1. $User = new \Home\Model\UserModel();
  2. $Info = new \Admin\Model\InfoModel();
  3. // 帶參數實例化
  4. $New = new \Home\Model\NewModel('blog','think_',$connection);

貌似還是沒有任何收獲,只能按照他的方法試下,發現果然可以,那就糾結了,為啥他的可以我的就不行呢!不得其解啊!不過他的寫法讓我靈機一動,將引用的命名空間改為了use Home\Model\UserModel;

試探的刷新了下頁面,出現了令人興奮的頁面

 

雖然成功了,但是還不知道為什么要這么引用,請大神們批評指教。


免責聲明!

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



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