> 백엔드 개발 > PHP 튜토리얼 > thinkphp 中自定义model步骤

thinkphp 中自定义model步骤

WBOY
풀어 주다: 2016-06-13 12:09:13
원래의
1231명이 탐색했습니다.

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代码:

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

?

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿