Heim >Backend-Entwicklung >PHP-Tutorial >thinkphp 中自定义model步骤

thinkphp 中自定义model步骤

WBOY
WBOYOriginal
2016-06-13 12:09:131232Durchsuche

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

?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn