thinkphp3.2.3 D方法无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp3.2.3 D方法无效相关的知识,希望对你有一定的参考价值。
<?
namespace Home\Model;
use Think\Model;
public function getInfo()
echo '这是自定义的Model类';
<?php
namespace Home\Controller;
use Think\Controller;
public function companyCreate()
$d= D('Company');
$d->getInfo();
:(
Think\Model:getInfo方法不存在!
错误位置
FILE: D:\xampp\htdocs\crm2\ThinkPHP\Library\Think\Model.class.php LINE: 241
TRACE
#0 D:\xampp\htdocs\crm2\ThinkPHP\Library\Think\Model.class.php(241): E('Think\\Model:get...')
#1 D:\xampp\htdocs\crm2\Application\Home\Controller\AdminController.class.php(275): Think\Model->__call('getInfo', Array)
#2 D:\xampp\htdocs\crm2\Application\Home\Controller\AdminController.class.php(275): Think\Model->getInfo()
#3 [internal function]: Home\Controller\AdminController->companyCreate()
#4 D:\xampp\htdocs\crm2\ThinkPHP\Library\Think\App.class.php(164): ReflectionMethod->invoke(Object(Home\Controller\AdminController))
#5 D:\xampp\htdocs\crm2\ThinkPHP\Library\Think\App.class.php(202): Think\App::exec()
#6 D:\xampp\htdocs\crm2\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#7 D:\xampp\htdocs\crm2\ThinkPHP\ThinkPHP.php(97): Think\Think::start()
#8 D:\xampp\htdocs\crm2\index.php(26): require('D:\\xampp\\htdocs...')
#9 main
ThinkPHP3.2.3 Fast & Simple OOP PHP Framework -- [ WE CAN DO IT JUST THINK ]
有意思的是 我在linux 下没问题 ,把文件放到windows上就出现以上问题! 这是BUG嘛!要怎么解决
你写的model和Controller写的都不规范,下面是我写的和结果,仅供参考
Model类<?php
namespace Admin\\Model;
use Think\\Model;
class CompanyModel extends Model
public function getinfo()
echo '11111';
//Controller
namespace Admin\\Controller;
use Think\\Controller;
class CompanyController extends Controller
public function index()
$d=D('company');
$d->getinfo();
参考技术B 类名呢?怎么没看到
thinkphp自动验证无效的问题
新手入门thinkphp,试用自动验证表单输入数据功能,却发现怎么都不能调用自动验证,自动验证无效,原因竟是一个小细节的疏忽,学习一定要细心啊!
Action方法: IndexAction下的adds方法,D(“Liuyan”)获取post提交过来的内容,create()方法创建数据对象,D方法创建了数据对象才可以自动调用验证。
public function adds(){ $ly=D("liuyan"); $result=$ly->create(); if($result){ echo ‘success‘; $ly->add(); } else{ exit($ly->getError()); } }
Model方法:
自动验证功能,加上$_validate属性,以数组的形式定义验证规则。
class LiuyanModel extends Model{ protected $_validate=array( array(‘ly_content‘,‘require‘,‘名字必填哦!‘,‘1‘), array(‘ly_user‘,‘‘,‘帐号名称已经存在!‘,0,‘unique‘,1), ); }
这样写的问题是,新增数据没有问题,但是不能自动调用验证功能,ThinkPHP的验证功能失效了。弄了半天,才知道,原因在于D(“Liuyan”)这样写才是对的,首字母大写。蛋疼,这么一个细节问题纠结半天,但不解的是为什么小写的形式却可以正确插入数据呢,那还是找到liuyan对应的数据表了啊。
thinkphp自动验证D方法里面的首字母要大写。
以上是关于thinkphp3.2.3 D方法无效的主要内容,如果未能解决你的问题,请参考以下文章