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;

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

 

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

ThinkPHP3.2版本对于Model的使用的更多相关文章

  1. ThinkPHP5.0版本和ThinkPHP3.2版本的区别

    5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规 ...

  2. 关于Thinkphp3.2版本的分页问题

    最近公司官网改版,需要把旧的thinkphp版本换到现在最新的3.2去,因此,就开展了一系列的升级工作..在修改命名空间的同时,发现Page分页类能正常运行了,但是分页的链接却是错误的,例如在Admi ...

  3. Thinkphp3.2版本Controller和Action的访问方法

    一.3.2版本以前controller和action的访问方式在3.2版本以前如果Controller=c.Action=a的话,访问规则如下:http://localhost:81/demo1/in ...

  4. ThinkPHP3.2版本安全更新

    近日我们收到了一个关于3.2版本的漏洞提醒,官方已经第一时间进行处理和更新.由于3.2版本已经过了官方的维护和安全更新周期,而且大量的开发者也进行了二次开发,因此不再发布新版,官方仅进行安全公告和修复 ...

  5. Thinkphp3.2版本使用163邮箱发(验证码)邮件

    今天忽然想写一个用户修改密码的功能,又没有短信接口,只能选择用邮箱发送验证码啦,穷啊,没办法,哈哈,以下为正文. ------------------------------------------- ...

  6. 话说TP框架里的Vendor这目录是干什么用的啊?类库扩展thinkphp3.1版本

    类库扩展包括基类库扩展.应用类库扩展和第三方类库扩展,所有扩展类库不会自动加载,需要手动加载或者定义别名和配置自动加载(详细可以参考4.2.3类库导入和4.2.5自动加载). 1 基类库扩展 目前支持 ...

  7. anaconda安装的TensorFlow版本没有model这个模块

    一.采用git bash来安装,确认已经安装了git 二.手动找到TensorFlow的模块文件夹地址,若不知道,输入以下两行代码: import tensorflow as tf tf.__path ...

  8. ThinkPHP3快速入门教程二:数据CURD

    CURD(创建[Create].更新[Updata].读取[Read].删除[Delete]),定义了用于处理数据的基本原子操作. CURD在具体的应用中并非一定使用create.updata.rea ...

  9. ThinkPHP3.1快速入门(2)数据CURD

    上一篇中,我们了解了ThinkPHP的基础部分,以及如何创建一个控制器和模板,并知道了M方法的用法,本篇将会讲解下数据的CURD操作,探索下更多的数据操作. CURD CURD是一个数据库技术中的缩写 ...

随机推荐

  1. 二叉查找树 平衡二叉查找树 红黑树 b树 b+树 链表 跳表 链表

    https://www.cnblogs.com/mojxtang/p/10122587.html二叉树的新增遍历查找

  2. elementui按需加载

    定义一个ele.js文件 官网:https://element.eleme.io/#/zh-CN/component/quickstart // 方法1 import 'element-ui/lib/ ...

  3. winfrom 操作Excel

    利用Aspose.Cells.dll 操作Excel,内容如下: 1.界面设计: 2.逻辑: using System; using System.Collections.Generic; using ...

  4. rabbitmq 连接报错 An unexpected connection driver error occured

    转自:https://blog.csdn.net/zht741322694/article/details/82801873 在服务器上安装了一个RabbitMq,并新创建了一个用户授予了管理员角色, ...

  5. DevOps与Kubernetes 、容器的关系

    近两年,随着容器.Kubernetes 等技术的兴起,DevOps 这个概念被广泛提及并被大量使用. 本文将会从以下几个方面着手,结合实验展现的方式,让读者真正理解 DevOps 的含义. DevOp ...

  6. java反射浅谈 part1--反射机制的定义,作用,原理

    一.定义 在运行过程中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:还可以通过反射创建对象,这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  7. shell中$(( ))、$( )、``与${ }的区别详解

    命令替换在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行 [python@m ...

  8. 09-【el表达式和jstl标签库】

    el表达式和jstl标签库 一:el表达式:表达式语言,jsp页面获取数据比较简单1.el表达式的语法(掌握)el表达式通常取值是获取作用域对象中的属性值:${属性名}=>是el表达式的简写的形 ...

  9. 使用metamask钱包

    一.安装火狐浏览器metamask插件 打开火狐浏览器的附件组件,搜索metamask 点击第一个 点击“添加到Firefox” 添加成功后,浏览器右上角有一个狐狸标志 点击这个标志,打开插件 二.创 ...

  10. 搭建单机版伪分布zookeeper集群

    一.下载zookeeper http://mirrors.shu.edu.cn/apache/zookeeper/stable/ 我下载的是3.4.13版本 上传到liunx虚拟机上,解压 再复制出2 ...