찾다
php教程php手册thinkphp3.2视图模型,各种报错和调试得到的心得

把thinkphp3.2版本的视图模型的错误都折腾了一个遍
namespace Home\Model;
use Think\Model\ViewModel;
class ViewFriendsModel extends ViewModel {

public $viewFields = array(
'friend'=>array('id','uid','fid','truename','addtime','typeid','status'),
'user'=>array('nickname', '_on'=>'friend.fid=user.id'),
);

}

1. 命名空间 namespace Home\Model;

这个一定要写在第一行,如果出现报错, 那就说明不是第一行, 有时候命名看到就是第一样,但是还是报错, 这种情况少数但是还是有,那是因为文件有BOM报头。一般出现这种情况的话很多时候是因为用记事本编辑过。解决方法有很多,用dreamweaver的话就是 找到这个文件,修改->页面属性->标题编码,把 包括Unicode签名(BOM)(s) 前面的勾去掉。

2. 引用命名空间 use Think\Model\ViewModel;

这个很多同学会忽略掉 。 因为很多同学贪图方便,把之前的模型文件复制过来,把文件名称改一下就可以写视图。 你要注意,你之前的模型是不是引用命名空间是这样的:use Think\Model 。

3. 继承类 class FriendsModel extends ViewModel

这个类是ViewModel ,而不是Model。视图的类是有区别的。

4. 表名 friend,user

这个是你数据库里面的表名称, 然后TP会以这个名字作为这个表名的别名, 如果你在配置里面设置了前缀,记得不要再把前缀写上去可以减少码字,我在数据库里面的名称是n_friend,n_user。
最后的表现形式是这样 : select * from n_friend friend join n_user user on friend.uid=user.id

5. 关联表 _on

这个跟上面3一样,表名称不要写前缀。

6. 文件名称

这个也是要注意的,文件名称必须首字母大写,而且在代码里面的类名称要跟文件名的一样,比如文件名称是FriendsModel.class.php,那么类名词就应该是FriendsModel ,首字母都要大写。

而且需要注意,文件名不要有下横线 “_” 。有些同学喜欢这样命名 User_ViewModel.class.php 。呵呵,TP的视图机制应该是系统不识别的。应该这样写UserViewModel.class.php

7. 控制器调用

实例化模型必须要用D(),如果用M()那是不对的。我在控制器里面是这样的

D(‘ViewFriends’)->select();

8. 调试视图模型

调试thinkphp3.2版本的视图模型的时候,可以用这个方法

echo D('ViewFriends')->getLastSql();

用TP提供的getLastSql()方法来把语句打印出来。然后把这个语句拿到mysql数据库里面运行看看报什么错,根据这个错调试我们的sql语句

9. 视图的where()

视图的where方法应该是这样用的 where('friend.fid=%d',$fid) 要标明是那个表

欢迎加入qq群一起探讨更多的thinkphp问题: 323899029

AD:真正免费,域名+虚机+企业邮箱=0元

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구