博主信息
博文 51
粉丝 3
评论 1
访问量 44122
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
闭包实现查询与软删除—2018年5月25日13时38分
Gee的博客
原创
836人浏览过

闭包实现查询

实例

<?php 
namespace app\index\controller;

use think\Controller;

use app\index\model\Staff as StaffModel; //设置模型类的别名

class Staff extends Controller
{
        public function query()
	{
                //单条get
		$staff = StaffModel::get(function($query) {
			$query->where('sex', 1)->where('age','>=',25);
		});

		dump($staff);
		echo '<hr>';

                //多条all
		$staffs = StaffModel::all(function($query) {
			$query->where('salary','>=',5000);
		});
		dump($staffs);

		//采用闭包来实现将请求变量注入到闭包条件中
		// $this->request : 请求对象
		
		$age = $this->request->param('age') ?: 30;
		$salary = $this->request->param('salary') ?: 5000;

		$staffs = StaffModel::all(function($query) use ($age, $salary) {
			$query->where('age','<',$age)->where('salary','>',$salary);
		});

		dump($staffs);

	}
}

运行实例 »

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


软删除:

步骤:

    软删除步骤:

        1.在表中添加一个字段:删除时间(删除标志): delete_time(10位或以上)

        2.在模型类添加一个属性: $delteTime = 'delete_time'

        3.在模型中导入软删除的trait类库: SoftDelete

        4.最新版本支持设置软删除的默认字段值

实例

<?php

namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete; //trait方法集

class Staff extends Model
{
	use SoftDelete;

    //设置数据表的名称
    protected $table = 'staff';

    //设置主键:默认为id
    protected $pk = 'staff_id';

    //设置删除时间的字段名
    protected $deleteTime = 'delete_time';

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

运行实例 »

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

实例

public function softDelete()
{
	StaffModel::destroy(10);
		
	//软删除的数据在普通查询中不可见
	$res = StaffModel::where('staff_id < 5')->select();

	//如果想在查询的时候看到已经被删除的记录
	$res = StaffModel::withTrashed()->where('staff_id < 5')->select();

	//查看回收站:
	$res = StaffModel::onlyTrashed()->select();

	dump($res);
}

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学