`

thinkphp 中自定义model方法

阅读更多

最近想用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里面的教程入门很简单,但是对一些深的问题,解释的很是不是很到位。可能是用的时间比较短吧。

 

分享到:
评论

相关推荐

    Thinkphp3.2.3自定义添加数据表及表中字段

    在ThinkPHP3.2.3中,自定义添加数据表是通过模型(Model)类和数据库操作类(DB)来实现的。首先,你需要创建一个新的模型类,这个类将代表你要创建的数据表。模型类通常继承自ThinkPHP的基础模型类,例如`Think\Model`...

    ThinkPHP中自定义目录结构的设置方法

    在上述自定义目录结构的设置方法中,所有ThinkPHP框架的核心文件都被放置在了include目录下,这样使得整个项目目录看起来更加干净简洁。将框架与业务代码分离也有助于在团队协作时,减少因为框架更新导致的代码合并...

    thinkPHP自定义类实现方法详解

    本文实例讲述了thinkPHP自定义类实现方法。分享给大家供大家参考,具体如下: 1.通过Model调用 &lt;?php /** * 积分模型 api接口 */ class ApiModel{ private $url = '...

    ThinkPHP新闻发布系统(前台+后台)绝对易学易用

    在ThinkPHP中,你可以使用ActiveRecord模式,通过对象方法直接操作数据。 4. 视图(View):视图主要负责数据的展示,后台管理界面通常包含表格展示、表单输入等元素,可以通过ThinkPHP的模板引擎进行渲染。 三、...

    thinkPHP2.1自定义标签库的导入方法详解

    本文将详细介绍thinkPHP2.1自定义标签库的导入方法,这包括标签库的定义、使用以及如何利用自定义标签库实现更高效的数据展示和处理。 首先,我们要了解thinkPHP的标签库系统是如何工作的。在thinkPHP框架中,标签...

    thinkphp demo

    路由在ThinkPHP中是至关重要的,它决定了URL到控制器方法的映射。通过自定义路由规则,可以实现灵活的URL设计,提升用户体验。在"thinkphp_02"的配置文件中,我们可以查看并学习如何设置和使用路由。 4. **数据库...

    ThinkPHP v5.1.41.zip

    路由是ThinkPHP中的核心组件之一,它允许开发者灵活定义URL与控制器方法的映射,支持RESTful风格,使API设计更为规范和简洁。 3. **MVC模式** 基于Model-View-Controller的设计模式,ThinkPHP将业务逻辑、数据...

    ThinkPHP5快速入门

    ThinkPHP5提供了强大的路由规则,允许开发者自定义URL与控制器方法的映射。通过路由,可以实现URL的美化,提高应用的可读性和可维护性。 数据库操作是ThinkPHP5的重要组成部分。框架内置了ActiveRecord模式,通过...

    ThinkPHP资料

    路由是ThinkPHP中的一个重要功能,它允许开发者自定义URL规则,实现URL与控制器方法的映射。通过配置路由,可以优化URL结构,提高用户体验,并且方便进行URL隐藏,增强网站安全性。 四、模型操作 在ThinkPHP中,...

    thinkphp chm chm文档 齐全

    1. MVC模式:ThinkPHP遵循Model-View-Controller设计模式,使得代码结构清晰,易于维护。在CHM文档中,你可以找到关于控制器、模型和视图的详细定义和使用方法。 2. 模板引擎:ThinkPHP支持 Smarty 和内置模板引擎...

    thinkphp程序源码

    路由在ThinkPHP中起到了连接URL与控制器方法的关键作用,允许开发者自定义URL结构,实现更加灵活的页面调用。通过配置路由规则,可以实现URL美化,提高用户体验,同时方便API接口的设计。 4. **自动加载** ...

    thinkphp3.x自定义Action、Model及View的简单实现方法

    主要介绍了thinkphp3.x自定义Action、Model及View的简单实现方法,结合实例形式详细分析了thinkPHP3.x自定义模型、视图及控制器的具体步骤与相关实现技巧,需要的朋友可以参考下

    中小型企业使用thinkphp搭建

    7. **数据库管理**:在ThinkPHP中,可以使用Model类直接操作数据库,或者使用Db类进行底层数据库操作,如查询、插入、更新和删除数据。 8. **企业系统功能**:结合SQL文件名(如my_qyjj.sql可能代表企业简介,my_...

    基于thinkphp图书管理系统

    在ThinkPHP中,Model负责数据处理和业务逻辑,View负责显示结果,Controller负责接收用户请求并调用Model进行处理,最后更新View展示给用户。 2. ThinkPHP框架特点: - 快速:ThinkPHP提供了丰富的内置组件和助手...

    thinkphp的学习资料

    - 修改 `config/config.php` 文件中的 `'URL_MODEL'` 配置项可以切换不同的 URL 模式。 - 在 `.htaccess` 文件中设置 Rewrite 规则可以实现 URL 重写。 3. **获取参数**: - 可以通过 `$_GET` 超全局数组或者 `$...

    使用ThinkPHP3.2.3创建留言板项目

    5. **自定义数据模型(Model)**:在ThinkPHP中,模型层是处理数据的主要方式。自动生成模型可以简化开发,通过继承和扩展,可以定制数据操作行为。同时,关联模型允许我们在处理多表关系时更加灵活,比如一对一、一...

    Thinkphp 连接 SQL SERVER 类

    本篇文章将详细探讨如何在ThinkPHP框架中配置和使用SQL Server数据库。 首先,`ThinkPHP 连接 SQL SERVER 类`指的是在ThinkPHP项目中创建一个类,专门用于处理与SQL Server数据库的连接、查询和其他操作。这通常...

    用thinkPHP框架做的权限系统

    本系统基于ThinkPHP框架,着重阐述了如何利用该框架来构建一个自定义的权限管理系统,以及如何通过自定义拦截方法来处理权限控制。 首先,我们需要理解ThinkPHP框架的核心概念。它采用了MVC(Model-View-Controller...

    thinkphp学习方法概要

    - 可以在模型中添加自定义方法,实现业务逻辑。 6. **控制器(Controller)**: - 控制器文件位于 `Lib/Action` 目录下,负责处理用户的请求,调用模型进行数据操作,并返回视图响应。 - 控制器类通常继承自 `...

Global site tag (gtag.js) - Google Analytics