博客列表 >thinkphp5.1 数据库操作

thinkphp5.1 数据库操作

无耻的鱼
无耻的鱼原创
2018年05月25日 12:07:012809浏览

软删除说明

	/**
	 * 软删除说明
	 *1.需要的在模型Staff导入use think\model\concern\SoftDelete;
	 *2.数据表中添加 delete_time 字段
	 *3.设置 $deleteTime = 'delete_time'		$defaultSoftDelete = 0
	 *4.执行软删除
	 *
	 *注意需要在类里再次use一次SoftDelete
	 *
	 */

下边上实例  这是文件位置

1.png2.png

model中的staff实例

<?php

namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete; //导入软删除功能

class Staff extends Model
{
	use SoftDelete;
	
    protected $table = 'aaa';

    protected $pk = 'id';

    //设置删除时间字段,配合软删除功能
    protected $deleteTime = 'delete_time';

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

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php 

//cmd 创建模型  php think make:model index/Staff

namespace app\index\controller;

/**
 * 使用模型操作数据库
 */
use think\Controller;
use app\index\model\Staff as Zhang;
use think\Request;

class Staff extends Controller
{
	
	//http://tp.io/Index.php/index/Staff/insert
	//依赖注入方式
	function insert(Zhang $zhang)
	{
		// dump($zhang->getName());

		$zhang->name='井九';
		$zhang->age='18';
		$zhang->money='7900';
		$zhang->save();
		return 'id是'.$zhang->id;

	}

	//模型查询
	function query()
	{
		//根据主键获取数据/数组
		// dump(zhang::get(56));
		//对象
		// \var_dump(zhang::get(56));

		// echo '<br>'.zhang::get(56)->money;//对象方式
		// echo '<br>'.zhang::get(56)['age'];//数组方式

		// 查询复杂数据
		//使用闭包也就是匿名函数
		// get只能查到第一条数据
		// $date = Zhang::get(function ($data){
			// $data->where('age','>','25')->where('money','>','2500');
		// });

		// dump($date);


		//多条数据查询

		//主键查询
		// dump(Zhang::all([2,56,49]));

		//复杂查询
		// $date1 = Zhang::all(function ($data){
			// $data->where('age','>','25')->where('money','>','2500');
		// });
		// dump($date1);


		// foreach ($date1 as $key ) {
		// 	echo '姓名:'.$key->name.'<br>';
		// 	echo '年龄:'.$key->age.'<br>';
		// 	echo '工资:'.$key->money.'<hr>';
		// }

		echo '<hr color="red">';

		// 变量从外部传入 闭包  $this->request->param()
		 $age=$this->request->param('age') ?: 35;
		 $money=$this->request->param('money')? : 7000;

		//http://tp.io/Index.php/index/Staff/query/age/20/money/8000
		$date2 = Zhang::all(function ($data ) use ($age,$money){
			$data->where('age','>', $age)->where('money','>', $money);
		});

		dump($date2);


		// foreach ($date2 as $key ) {
		// 	echo '姓名:'.$key->name.'<br>';
		// 	echo '年龄:'.$key->age.'<br>';
		// 	echo '工资:'.$key->money.'<hr>';
		// }

	}

	//模型更新
	function update()
	{
		//先查询后更新
		// $data = Zhang::get(56);
		// $data->name='丽水';
		// $data->save();


		// 推荐使用静态方式
		//update(数据,条件,字段)
		Zhang::update(			
			['name'=>'小丽','age'=>'15'],
			['id'=> 56]
		);

		// 复杂更新
		Zhang::update(
			['money'=> \think\Db::raw('money+123')],
			function($data){
				$data->where('money','<','6000');
			}
		);

		// 构造器 更新
		Zhang::where('id',56)
		->data('money',12000)
		->update();

	}


	// 模型添加数据
	function create()
	{
		// 添加的数据
		$data=[
			'name'=>'阿水',
			'age'=>'21',
			'money'=>'2600',
		];

		//过滤
		$filed=[
			'name','age'
		];

		//数据添加
		Zhang::create($data,$filed);
	}

	// 模型删除数据
	function destroy()
	{
		Zhang::destroy(52);//支持多键

		//支持回调
		Zhang::destroy(function($data){
			$data->where('money','<','5500');
		});

		Zhang::where('id',22)->delete();//支持多键
	}

	//软删除
	function delete()
	{
		// Zhang::destroy(38);

		//普通查询查不到
		dump(Zhang::where('id',39)->select());

		//包括已删除的withTrashed()
		dump(Zhang::withTrashed()->where('id',38)->select());

		//仅查询已删除的
		dump(Zhang::onlyTrashed()->select());

	}


	/**
	 * 软删除说明
	 *1.需要的在模型Staff导入use think\model\concern\SoftDelete;
	 *2.数据表中添加 delete_time 字段
	 *3.设置 $deleteTime = 'delete_time'		$defaultSoftDelete = 0
	 *4.执行软删除
	 *
	 *注意需要在类里再次use一次SoftDelete
	 *
	 */


}

运行实例 »

点击 "运行实例" 按钮查看在线实例



上一条:SVN使用指南下一条:5月23日作业
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议