文档章节

TP5 model类研究

Zero_初始化
 Zero_初始化
发布于 2017/09/08 09:11
字数 295
阅读 20
收藏 0

model类研究

仅做开发笔记,若有不足之处,请指出

  • 简介

我们都知道thinkphp5增删改查的函数返回的都是模型对象

他与tp3.2是有区别的,现在主要研究该模型的运行机制和调用方法。

那么问题来了:

为什么数据可以通过数组或者对象调用方式进行获取数据?

探究魔法变量__get、__set、__isset、__toString还有tp5的getData方法。

 

参考: PHP中__get()和__set()的用法实例详解
    PHP实现对象属性按数组方式访问

 

  • 实例解释
<?php
namespace app\index\controller;

use app\common\model\Users;
class Index
{
  //对象可以通过数组形式获取数据
    public function testObj()
    {
        //获取用户ID为124
        $res = Users::get(124);
        //由于model接口ArrayAccess->自动调用offsetGet()将调用数组的键作为参数,若不传键则会返回全部数据getData();
        //使用数组形式调用对象
         echo $res['id'];//offsetGet()->getData('id');
         echo $res->id; //_get->getData('id')
         if(isset($res['id']));  //调用魔法变量isset
         if($res['id']);       //调用魔法变量isset
         echo $res;            //自动调用__tostring
    }
}
?>

 

于此为记

参考文献:http://blog.csdn.net/qq_15096707/article/details/62227624

© 著作权归作者所有

共有 人打赏支持
Zero_初始化
粉丝 0
博文 8
码字总数 2121
作品 0
广州
程序员
易优内容管理系统 - EyouCms

想了许久,不知道该从何谈起,朋友圈给我贴了有意思的标签:程序员圈里最牛逼的骑行者,骑行界里最不懂英语的程序员。 可谓初生牛犊不怕虎,时隔一年多没接触php,tp从tp3也到了tp5,互联网发...

绝世十二少
09/14
0
0
Laravel5.2之Model Observer模型观察者

说明:本文主要学习下Laravel的Model Observer模型观察者,把一点点经验分享出来希望对别人能有帮助。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。 备注:上一篇文章:Larav...

botkenni
2016/10/22
7
0
Model.modifyFlag请教

@JFinal 你好,想跟你请教个问题:最近研究折腾Model,研究了好久也没弄明白Model.modifyFlag的工作原理是啥。知道是用来判断model中字段是否修改过的,但不知道它是怎么工作的,也没找到它工...

ramnight
2014/12/22
149
1
聊聊Android开发中的MVP模式

一、初识MVP(Model View Presenter) google上关于MVP模式的资料已经特别多了,所以我这里也不啰嗦了。 因为之前做过的几个项目,每个Activity的所有操作代码全部都是堆在里面,虽然查找还算方...

silencezwm
07/03
0
0
anwsion问答系统研究笔记

anwsion /app/文件夹下是action 所有action类都继承/system/中的基类AWSCONTROLLER /models/文件夹下是models models的基类是AWSMODEL /views/文件夹下是模板 框架核心代码在/system/中 工具...

lilugirl
2013/03/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
30分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
34分钟前
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
43分钟前
1
0
android -------- Data Binding的使用 ( 六) 自定义属性

今天来说说DataBinding在自定义属性的使用 默认的android命名空间下,我们会发现并不是所有的属性都能直接通过data binding进行设置,比如margin,padding,还有自定义View的各种属性。 默认...

切切歆语
49分钟前
1
0
收邮件 下载附件

uses IdMessage, IdMessageParts, IdAttachment, IdGlobalProtocols, ...;procedure SaveAttachmentsFromFile(FileName: String)var IdMessage: TIdMessage; MsgPart: Ti......

vga
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部