Blogger Information
Blog 51
fans 3
comment 1
visits 36234
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
闭包实现查询与软删除—2018年5月25日13时38分
Gee的博客
Original
652 people have browsed it

闭包实现查询

实例

<?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);
}

运行实例 »

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post