Operación básica del proyecto ThinkPHP6 (modelo 7.)

1. Definición y uso básico del modelo

En comparación con la base de datos operativa de Db, Modeles más conveniente utilizar clases de modelo .
En la controllercarpeta, el mismo directorio crea una nueva carpeta model, y luego crea una nueva Modelclase, el nombre del archivo y el nombre de la tabla de la base de datos corresponden a los datos, como la tabla de datos demo, luego la clase modelo llamada Demo.php:

<?php
namespace app\model;
use think\Model;

class Demo extends Model
{
    
    

}

Utilice la clase de modelo en el controlador:

public function model1(){
    
    
    $result = Demo::find(2);
    dump($result);
}

Salida del navegador:
Inserte la descripción de la imagen aquí
este es el objeto del modelo de salida. Si desea generar datos directamente, puede utilizar el toArraymétodo:

dump($result->toArray());

Salida del navegador:
Inserte la descripción de la imagen aquí

2. Consulta de modelos y otros usos

1. nuevo objeto de modelo

Además del uso directo de los métodos estáticos anteriores, también puede operar en newun objeto primero . El objeto modelo devuelto o una colección de objetos modelo también se puede toArrayconvertir en una matriz usando métodos:

public function model2(){
    
    
    $model = new Demo();
    $result = $model->where('id','>',2)->select();
    dump($result);
}

2. Model Getter

El buscador de modelos puede modificar el valor de un campo o definir un campo que no existe en la tabla de datos. La regla de definición del nombre del método es get[字段大驼峰名]Attr, por ejemplo getStatusTextAttr, hay un statuscampo en la base de datos y la modelclase se modifica como:

<?php

namespace app\model;
use think\Model;

class Demo extends Model
{
    
    
    public function getStatusTextAttr($value, $data){
    
    
        $status = [
            0 => '待审核',
            1 => '正常',
            99 => '删除'
        ];
        return $status[$data['status']];
    }
}

La llamada del controlador, el nombre de la joroba grande se cambia a la 下划线小写forma:

public function model2(){
    
    
    $model = new Demo();
    $result = $model->find(2);
    dump($result->status_text); // "待审核"
    dump($result->toArray());
}

Pero convertido directamente a una matriz, todavía no habrá status_textcampos:
Inserte la descripción de la imagen aquí
si desea obtener los 数据表中不存在的atributos de datos que contienen el getter procesados , puede usar el appendmétodo para agregar, los campos existentes en la tabla de datos se pueden procesar sin procesar, y automáticamente devolverá:

dump($result->append(['StatusText'])->toArray());

appendLos atributos de se pueden 大驼峰nombrar o 下划线小写método:

dump($result->append(['status_text'])->toArray());

resultado:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/zy1281539626/article/details/110354888
Recomendado
Clasificación