最近想用thinkPHP了,这也是听同事说的,说他比较简单,拿过来试一下,看了一遍文档,比较详细。后来继续用,便遇到了这个问题:在model中添加方法,因为很多和model相关的方法用的次数多,而且应该属于model‘管辖’,所以应该写在model类里面。
按照惯例建好Model和Controller(我用的3.2),然后在Controller的某个function里面调用。下面上代码:
<?php use Think\Model; class ControllerModel extends Model { public function find_or_create($ctlName){ var_dump($ctlName); $condition['name'] = $ctlName; $cls = $this->where($condition)->find(); if($cls){ return $cls; }else{ $data = array(); $data['name'] = $ctlName; $data['fazenda_id'] =1 ; $id = $this -> add($data); return $id; } } } ?>
Controller代码:
<?php namespace Record\Controller; use Think\Controller; use Think\Log; class IndexController extends Controller { public function sync() { $controllerName = I('post.controller', '控制器'); $ctlModel = M('Controller'); $ctl = $ctlModel -> find_or_create($controllerName); $data = array(); $data['ctl'] = $ctl; echo json_encode($data); } }
上面Model的名字叫做Controller是因为这个model的意义是控制器,所以叫做了Controller。如果这样用,会出现问题:Think\Model:find_or_create方法不存在!查了一下,有三方面要改:
- 讲M方法更改为D方法
- 给Model增加命名空间
- 在Controller里面use命名空间
经过以上三点就可以了,花了将近半天的时间才找到,真不容易啊。还有,感觉thinkphp里面的教程入门很简单,但是对一些深的问题,解释的很是不是很到位。可能是用的时间比较短吧。
相关推荐
本文实例讲述了thinkPHP自定义类实现方法。分享给大家供大家参考,具体如下: 1.通过Model调用 <?php /** * 积分模型 api接口 */ class ApiModel{ private $url = '...
主要介绍了thinkphp3.x自定义Action、Model及View的简单实现方法,结合实例形式详细分析了thinkPHP3.x自定义模型、视图及控制器的具体步骤与相关实现技巧,需要的朋友可以参考下
主要介绍了ThinkPHP3.2框架自定义配置和加载用法,结合实例形式分析了thinkPHP3.2框架使用自定义配置保存预定义数组数据相关操作技巧,需要的朋友可以参考下
在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有...
D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下: D(‘[项目://][分组/]模型’,’模型层名称’) 方法的...
ThinkPHP CURD方法的field方法属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。 1、用于查询 在查询操作中field方法是使用最频繁的。 $Model->field('id,title,content'...
在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有...
2、实例化后只能调用基础模型类(默认是Model类)中的方法; 3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息; D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型...
D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了。 M方法的调用格式: M(‘[基础模型名:]模型名’,’数据表前缀’,’数据库...
2:cakephp中虽然对模型的操作方法中并没有提供像上面提到的连贯方法 但是cake框架提供了一个containable行为类来更好的完善模型关联中遇到的上述问题 ">1:thinkphp中通过框架提供的连贯操作Model >join ‘other ...
'autoload' => true , // 当关闭自动获取配置时需要手动配置hooks信息 'hooks' => [ // 可以定义多个钩子 'testhook' => 'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,// 多个插件...
//自定义Model处理 //if里面就是ThinkPHP的自动验证了. if(!$DB->create()){ $this->redirect(‘Index/Login’, ”, 3, ‘错误信息: ‘.$DB->getError().' 系统将于3秒后返回重新登陆…’); }else{ $con[...
模型对象和数据对象理解 1. 模型对象:模型类实例化后获得的对象;...object(app\index\model\Staff)#5 (28) { //数据库配置数组 [connection:protected] => array(0) { } //数据库查询对象,负责最终完成对数据
6.1.2.3调用自定义验证方法 20 6.1.3 模型 20 6.1.3.1Model 模型的示例 22 6.1.3.2 关联模型 22 6.1.3.3TP5 的静态调用方法和实例化调用方法 22 6.2全局异常处理 23 6.2.1实际情况下的异常处理举例 23 6.2.2在...
基于ThinkPHP,一套简单的基础的企业站系统,便捷企业网上推广。方便扩展,二次开发。内容管理,商城,UCG等模块。分离独立。 系统设计架构 1.入口index.php多应用模式 2. route控制访问接口地址,请求方法。方法内...
租户及租户应用权限)、 强大的一键CRUD生成代码(页面JS,控制器controller,模型及关联模型model)、基于ThinkPHP6及layui快速布局扩展等等特性、详细的二次开发及系统使用说明文档!让您不管是自己学习使用还是...
Mao10CMS V2.4主要更新内容:商品模块功能增强,每个商品可自定义参数。屏蔽IP功能,可以屏蔽不受欢迎的用户IP,只要该用户登陆过的IP都会被自动保存并在执行屏蔽操作后,永久禁止登陆。另外就是进行了一些列的BUG...
Mao10CMS V2.4主要更新内容:商品模块功能增强,每个商品可自定义参数。屏蔽IP功能,可以屏蔽不受欢迎的用户IP,只要该用户登陆过的IP都会被自动保存并在执行屏蔽操作后,永久禁止登陆。另外就是进行了一些列的BUG...
Mao10CMS V2.4主要更新内容:商品模块功能增强,每个商品可自定义参数。屏蔽IP功能,可以屏蔽不受欢迎的用户IP,只要该用户登陆过的IP都会被自动保存并在执行屏蔽操作后,永久禁止登陆。另外就是进行了一些列的BUG...