最近想用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中,自定义添加数据表是通过模型(Model)类和数据库操作类(DB)来实现的。首先,你需要创建一个新的模型类,这个类将代表你要创建的数据表。模型类通常继承自ThinkPHP的基础模型类,例如`Think\Model`...
在上述自定义目录结构的设置方法中,所有ThinkPHP框架的核心文件都被放置在了include目录下,这样使得整个项目目录看起来更加干净简洁。将框架与业务代码分离也有助于在团队协作时,减少因为框架更新导致的代码合并...
本文实例讲述了thinkPHP自定义类实现方法。分享给大家供大家参考,具体如下: 1.通过Model调用 <?php /** * 积分模型 api接口 */ class ApiModel{ private $url = '...
在ThinkPHP中,你可以使用ActiveRecord模式,通过对象方法直接操作数据。 4. 视图(View):视图主要负责数据的展示,后台管理界面通常包含表格展示、表单输入等元素,可以通过ThinkPHP的模板引擎进行渲染。 三、...
本文将详细介绍thinkPHP2.1自定义标签库的导入方法,这包括标签库的定义、使用以及如何利用自定义标签库实现更高效的数据展示和处理。 首先,我们要了解thinkPHP的标签库系统是如何工作的。在thinkPHP框架中,标签...
路由在ThinkPHP中是至关重要的,它决定了URL到控制器方法的映射。通过自定义路由规则,可以实现灵活的URL设计,提升用户体验。在"thinkphp_02"的配置文件中,我们可以查看并学习如何设置和使用路由。 4. **数据库...
路由是ThinkPHP中的核心组件之一,它允许开发者灵活定义URL与控制器方法的映射,支持RESTful风格,使API设计更为规范和简洁。 3. **MVC模式** 基于Model-View-Controller的设计模式,ThinkPHP将业务逻辑、数据...
ThinkPHP5提供了强大的路由规则,允许开发者自定义URL与控制器方法的映射。通过路由,可以实现URL的美化,提高应用的可读性和可维护性。 数据库操作是ThinkPHP5的重要组成部分。框架内置了ActiveRecord模式,通过...
路由是ThinkPHP中的一个重要功能,它允许开发者自定义URL规则,实现URL与控制器方法的映射。通过配置路由,可以优化URL结构,提高用户体验,并且方便进行URL隐藏,增强网站安全性。 四、模型操作 在ThinkPHP中,...
1. MVC模式:ThinkPHP遵循Model-View-Controller设计模式,使得代码结构清晰,易于维护。在CHM文档中,你可以找到关于控制器、模型和视图的详细定义和使用方法。 2. 模板引擎:ThinkPHP支持 Smarty 和内置模板引擎...
路由在ThinkPHP中起到了连接URL与控制器方法的关键作用,允许开发者自定义URL结构,实现更加灵活的页面调用。通过配置路由规则,可以实现URL美化,提高用户体验,同时方便API接口的设计。 4. **自动加载** ...
主要介绍了thinkphp3.x自定义Action、Model及View的简单实现方法,结合实例形式详细分析了thinkPHP3.x自定义模型、视图及控制器的具体步骤与相关实现技巧,需要的朋友可以参考下
7. **数据库管理**:在ThinkPHP中,可以使用Model类直接操作数据库,或者使用Db类进行底层数据库操作,如查询、插入、更新和删除数据。 8. **企业系统功能**:结合SQL文件名(如my_qyjj.sql可能代表企业简介,my_...
在ThinkPHP中,Model负责数据处理和业务逻辑,View负责显示结果,Controller负责接收用户请求并调用Model进行处理,最后更新View展示给用户。 2. ThinkPHP框架特点: - 快速:ThinkPHP提供了丰富的内置组件和助手...
- 修改 `config/config.php` 文件中的 `'URL_MODEL'` 配置项可以切换不同的 URL 模式。 - 在 `.htaccess` 文件中设置 Rewrite 规则可以实现 URL 重写。 3. **获取参数**: - 可以通过 `$_GET` 超全局数组或者 `$...
5. **自定义数据模型(Model)**:在ThinkPHP中,模型层是处理数据的主要方式。自动生成模型可以简化开发,通过继承和扩展,可以定制数据操作行为。同时,关联模型允许我们在处理多表关系时更加灵活,比如一对一、一...
本篇文章将详细探讨如何在ThinkPHP框架中配置和使用SQL Server数据库。 首先,`ThinkPHP 连接 SQL SERVER 类`指的是在ThinkPHP项目中创建一个类,专门用于处理与SQL Server数据库的连接、查询和其他操作。这通常...
本系统基于ThinkPHP框架,着重阐述了如何利用该框架来构建一个自定义的权限管理系统,以及如何通过自定义拦截方法来处理权限控制。 首先,我们需要理解ThinkPHP框架的核心概念。它采用了MVC(Model-View-Controller...
- 可以在模型中添加自定义方法,实现业务逻辑。 6. **控制器(Controller)**: - 控制器文件位于 `Lib/Action` 目录下,负责处理用户的请求,调用模型进行数据操作,并返回视图响应。 - 控制器类通常继承自 `...