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;

试探的刷新了下页面,出现了令人兴奋的页面

 

虽然成功了,但是还不知道为什么要这么引用,请大神们批评指教。

最新文章

  1. 05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系
  2. arguments 对象的老历史
  3. 让Git记住用户名和密码
  4. 如何使用matplotlib绘制一个函数的图像
  5. 【转】JavaScript下对去重算法的优化
  6. iOS常用的忽略警告
  7. Java Web项目中的经典代码抽取
  8. OpenGL教程
  9. ACM: HDU 2563 统计问题-DFS+打表
  10. ---iproute2 策略路由
  11. 传统高斯模糊与优化算法(附完整C++代码)
  12. [转]基于AngularJS的前端架构(上)
  13. Java学习第二篇:类,对象,成员属性,成员方法,构造方法,类变量,类方法
  14. IOS文章地址暂时记录
  15. (Trie) uvalive 3942 Remember the word
  16. VB postmessage发送后台Tab
  17. ST表 || RMQ问题 || BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队 || Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup
  18. Ado.net之连接数据库
  19. 使用com.aspose.words将word模板转为PDF乱码解决方案(window下正常)
  20. js实现响应式瀑布流

热门文章

  1. idea2019 Tomcat9 Tomcat Localhost log 乱码
  2. WCF寄宿windows服务一
  3. eclipse 导入外面的jar
  4. [Eclipse的Maven项目搭建,仅为测试Maven功能]如何在Eclipse下搭建Maven项目
  5. Intellij IDEA导入java项目看不到左边的项目目录结构
  6. MacOs上的Intellij idea高频快捷键总结(2018.1版本)
  7. MFC的一些常用操作
  8. 1. LVS概述
  9. 给移动硬盘装win10,知道这些就足够了
  10. 第十五届四川省省赛 SCU - 4439 Vertex Cover