Thinkphp5.1通过模型实现CURD操作

Original 2019-03-16 10:13:21 344
abstract:<?php namespace app\index\controller; use think\DB; use app\index\model\User; class Index {     public function index()     {
<?php
namespace app\index\controller;

use think\DB;
use app\index\model\User;
class Index
{
    public function index()
    {
    	
        return view();
    }

    public function find()
    {
    	// $res = User::find(); //用sql语句进行查询


    	// $res = User::where('user_id','>',6)->find(); //用模型进行查询一条数据,返回最近的一条
    	$res = User::where(function($query){
    		$query->where('user_id','>',6);
    	})->find(); //用闭包函数进行查询条件创建
    	dump($res);
    }

    public function select()
    {
    	// $res = User::select();

    	$res = User::select(function($query){
    		$query->where('sallary','>',5000);
    	});
    	dump($res);
    }

    public function update()
    {
    	// $res = User::update(
    	// 	['sallary'=> DB::raw('sallary+1000')],
    	// 	['user_id'=>1]
    	// );
    	$res = User::update(
    		['sallary'=> DB::raw('sallary+1000')],
    		function($q){
    			$q->where('sallary','<','4000');
    		}
    	);
    	dump($res);
    }

    public function delete(){
    	// $res = User::destroy(1);//软删除成功

    	// $res = User::where('user_id','<',3)->select(); //获取数据,不包括软删除的数据
    	// $res = User::withTrashed()->where('user_id','<',3)->select(); //查询所有数据,包括软删除的数据
    	$res = User::onlyTrashed()->where('user_id','<',3)->select();//只获取软删除的数据
    	dump($res);
    }

    public function insert()
    {
    	//$res = DB::query('select * from user');
    	// $data = ['user_name'=>'PHP','sex'=>1,'age'=>19,'sallary'=>8000];
    	// $res = DB::table('user')->insert($data); //插入一条数据,返回影响的条数

    	$data = ['user_name'=>'bootstrap','sex'=>1,'age'=>52,'sallary'=>4300];

    	// $res = DB::table('user')->insertGetId($data);//插入一条数据,并返回插入的ID
    	// $userModel = new User();
    	// $res = $userModel->save($data); //返回是个布尔型值

    	$res = User::create($data); //静态方法进行添加操作,返回是个对象类型
    	var_dump($res->user_id);die;
    }

    public function hello($name = 'ThinkPHP5',$sex='18')
    {
        return 'hello,' . $name.'年龄:'.$sex;
    }
}

模型代码如下:

<?php

namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete;

class User extends Model
{
	use SoftDelete;
    
    protected $table = 'user'; //定义数据表

    protected $pk = 'user_id'; //定义主键,默认为id

    protected $deleteTime = 'delete_time'; //设置软删除的字段

    protected $defaultSoftDelete = 0; //设置软删除默认字段值


}

总结:

  1. 闭包函数:就是 把函数相当于一个参数传递过去。

  2. 模型:模型可以设置很多条件,例如软删除,比原生sql语句使用起来方便。问:但是不知道速度差距明显吗,数据少显示不出来,数据多了呢?

Correcting teacher:查无此人Correction time:2019-03-16 10:46:14
Teacher's summary:数据库查询的速度,在于你的条件。你的条件明确,对查询速度不影响。继续加油

Release Notes

Popular Entries