Home > PHP Framework > ThinkPHP > body text

The use of Query Data Getdata method of ThinkPHP5 data object

angryTom
Release: 2020-03-12 10:07:42
forward
4848 people have browsed it

This article introduces how to use the Getdata method of querying data in ThinkPHP5 data objects. I hope it will be helpful to friends who are learning thinkphp!

The use of Query Data Getdata method of ThinkPHP5 data object

The use of query data Getdata method of ThinkPHP5 data object

Since the Tp5 framework was launched, it is still different from the previous version 3.2 A big change. Personally, I prefer the model instantiation aspect of TP5. TP5 cancels the M method of automatically instantiating the model and instead uses a new instantiation model method, which is getting closer to object-oriented. In the past, all queries queried using the M method in tp3.2 were arrays, but now all tp5 model operations return objects. Today we will talk about data objects in tp5. What are data objects? The data object doesn't know it, but the model object should know it. It is the object obtained after the model class is instantiated.

Understanding of model objects and data objects

1. Model object: the object obtained after the model class is instantiated;

2. Data object: obtained When it comes to the model object of the original data;

Original data: stored in the $data attribute of the model object ($data is an array)

Data object: After all, it is still a model object, thousands Don’t think it is a brand new object

DB operation returns an array; model direct operation returns an object.

Many times when we use the model to query data, what is returned is the object instance of the current model. The get or find methods return the object instance of the current model, but we do not want this object, but want The data in this object ["data":protected]. The following is a simple example to explain how to or data data.

First create a custom model class, inherited from the Model class

Because the Model class is an abstract class, its subclass must be defined before it can be used

Model file:/application/index/model/Staff.php

<?php
namespace app\index\model;//导入模型类
use think\model;class Staff extends model {
    //自定义模型类代码}
Copy after login

Controller file: Index.php

<?php
namespace app\index\controller;//导入模型类
use app\index\model\Staff;class Index {
  public function index(){ 
    //1.创建模型对象$model
    //此时的模型对象仅仅完成了与特定数据表的绑定
    //理论上讲,仍是一个没有任何数据的空模型
    $model = new Staff();
    //2.创建数据源,供创建数据对象使用
    $data = [];
    $data[&#39;id&#39;] = 1001;
    $data[&#39;name&#39;] = &#39;Peter&#39;;
    $data[&#39;age&#39;] = 26;
    //3.data()方法完成前面模型对象的$data属性赋值
    //使模型对象转换成数据对象,现在$model 已经是数据对象啦
    $model -> data($data);
    //4.getData()方法获取数据对象原始数据$data
    $result = $model -> getData();  
    //5.查看数据对象原始数据:$data属性(数组类型)
    dump($result);  
  
  }}
Copy after login

Now open the browser to run the index method of the Index controller:

//以下就是数据对象的原始数据//其实就是将数据对象中$data属性值输出array(3) {
  ["id"] => int(1001)
  ["name"] => string(5) "Peter"
  ["age"] => int(26)}
Copy after login

Now all the original data is output. What if we only need one element?

The getData method parameter is passed in the key name string to obtain the specified single original data element

We only need to modify the fourth step of the above controller code:

//4.getData()方法获取数据对象原始数据$data[&#39;name&#39;]的值$result = $model -> getData(&#39;name&#39;);
Copy after login

In this way, you can get the value corresponding to the name key in the original data $data:

string(5) "Peter"
Copy after login

4. Summary:

This method is very flexible and you can get the complete The original data can also be obtained. It is also the most commonly used method in development, especially in template production, so it must be mastered proficiently.

(Recommended tutorial: thinkphp tutorial)

The above is the detailed content of The use of Query Data Getdata method of ThinkPHP5 data object. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:www.100txy.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!