创建图书表 创建模型类进行增删改查操作

Original 2019-04-01 12:59:47 261
abstract://创建图书表 DROP TABLE IF EXISTS `library`; CREATE TABLE `library` (   `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMME
//创建图书表
DROP TABLE IF EXISTS `library`;
CREATE TABLE `library` (
  `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '图书id',
  `name` varchar(30) NOT NULL COMMENT '书名',
  `salary` int(6) unsigned NOT NULL DEFAULT '3000' COMMENT '价格',
  `delete_time` int(10) NOT NULL,
  `enter_time` int(10) NOT NULL,
  PRIMARY KEY (`staff_id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

//模型类Library.php
<?php 
namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete;
/**
* 软删除的步骤
*1.在表中添加一个字段:删除时间(删除标志):delete_time
*2.在模型类添加一个属性:$deleteTime='delete_time'
*3.在模型中导入软删除的trait类库:SoftDelete
*/
class Library extends Model
{
	use SoftDelete;

	protected $table = 'library';

	protected $pk ='library_id';

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

	//设置软删除字段的默认值

	protected $defaultSoftDelete = 0;
}
?>
//控制器类
<?php 
namespace app\index\Controller;
use think\Controller;
use think\Db;

use app\index\model\Library as LibraryModel;

class Library extends Controller
{
	//实例化模型
	public function instance(LibraryModel $library){//依赖注入
		//$staff = new StaffModel();//模型实例化
		//dump($staff->getName());

		//新增一条数据
		$library->name = 'book_one';
		$library->salary = 50;

		//新增操作
		$library->save();
		return '新增成功,id='.$library->library_id;
	}
	//模型查询
	public function query()
	{
		//1单条记录
		//闭包:就是一个匿名回调函数(将函数作为参数进行传递)
		$library = LibraryModel::get(2);
		echo $library->name;

		//闭包创建查询
		$library = LibraryModel::get(function($query){
			$query->where('salary','>',50);
		});
		
		dump($library);

		//直接静态调用Db类查询构造器查询
		LibraryModel::where('salary','>',50)->find();

		//多条记录查询:all
		//返回值是多个数组
		$librarys=LibraryModel::all([1,2,3]);
		dump($librarys);

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

		$librarys= LibraryModel::all(function($query) use ($salary){
			query->where('salary','>',$salary);

		});

		dump($librarys);

		

	}
	//模型更新
	public function update()
	{
		//基于查询的,不允许无条件更新
	    $library = LibraryModel::get(3);
	    $library->name = 'longguniang';//更新记录字段
	    $library->save();

	    //静态方法:update();

	    LibraryModel::update(
	    	['name'=>'xiaolongnv'],
	    	['library_id'=>2]
	    );

	    //复杂更新
	    //将年龄大于50的员工 工资加500

	    LibraryModel::where('library_id','>','5')
	    	->update(
	    		['salary'=>Db::raw('salary+500')]
	    	);
	    	
	    


	}

	public function create()
	{
		//save();
		//create(数据,字段);
		$data=['name'=>'sunwukong','salary'=>8888];
		$field=['name','salary'];
		LibraryModel::create($data,$field);
	}

	//删除记录

	public function delete()
	{
		$library = LibraryModel::destroy(1);
	}

	//软删除

	public function softDelete()
	{
		LibraryModel::destroy(35);

		//软删除的数据普通查询不可见
		$res =LibraryModel::where('library_id','<',40)->select();
		//dump($res);
        //软删除的数据可见 withTrashed();
		$res =LibraryModel::withTrashed()->where('library_id','<',40)->select();
		//dump($res);

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



}


?>


Correcting teacher:西门大官人Correction time:2019-04-02 09:39:16
Teacher's summary:软删除的原理是更新数据库中的一个字段,实际上并没有从数据库中删除相关数据

Release Notes

Popular Entries