摘要:<?php /** * Created by PhpStorm. * User: 普通用户 * Date: 2019/6/18 * Time: 21:25 */ namespace app\index\controller; use
<?php
/**
* Created by PhpStorm.
* User: 普通用户
* Date: 2019/6/18
* Time: 21:25
*/
namespace app\index\controller;
use think\Controller;
use app\index\model\Book as BookModel;
class book extends Controller
{
// 模型实例化
public function instance(BookModel $book)
{
$book->name='Word、Excel、PPT2016从入门到精通';
$book->author='刘德胜';
$book->price='9.99';
$book->publish=strtotime(date(2017-05-01));
$book->save();
return '新增成功,Id='.$book->id;
}
// 模型的查询操作
public function query()
{
// 单条记录查询,用get(主键ID)
$book = BookModel::get(10);
dump($book);
// 返回值可以用数组或对象方式获取
echo '以数组方式查询书名: '.$book['name'].'<br>';
echo '以对象方式查询书名:'.$book->name;
// 用闭包方式查询
$book = BookModel::get(function ($query){
$query->where('price','>','100')->where('id','>','1');
});
echo '<hr>'.'书本价格大于100元的记录(单条):'.'<br>';
dump($book);
// 用PD类的查询构造器来进行查询
echo '价格少于10元的书本:','<br>';
$book = BookModel::field('name,price')
->where('price','<',10)
->find();
dump($book);
echo '<hr>';
// 查询多条记录:
echo '显示所了数据:';
$book=BookModel::all();
dump($book);
echo '<hr>';
// 显示主键=1,2的记录
$book=BookModel::all([1,2]);
dump($book);
echo '<hr>';
$book=BookModel::all(function ($query){
$query->where('price','>',10);
});
echo '书本价格大于10元的记录:';
dump($book);
echo '<hr>';
echo '以下书本价格大于10玩的记录以遍历方式显示输出'.'<br>';
foreach ($book as $books){
echo '书本Id:'.$books->id.'<br>';
echo '书本名:'.$books->name.'<br>';
echo '书本价格:'.$books->price.'<br>';
echo '<hr>';
}
echo '用请求对象对数据库查询','<br>';
$price = $this->request->param('price')?:10;
$book = BookModel::all(function ($query) use($price){
$query->where('price','>',$price);
});
dump($book);
}
// 模型修改数据库
public function update()
{
// 对单一记录的赋值修改
$book = BookModel::get(10);
$book->price = 200;
$book->save();
// 用update方法修改
BookModel::update(
['price'=>150],
['id'=>10]
);
// 用闭包方式修改记录
BookModel::update(
['price'=>\think\Db::raw('price+5')],
function ($query){
$query->where('price','>','10')->where('price','<','200');
}
);
// 用Db构造器更新数据
BookModel::where('price','<100',100)
->data(['price'=>\think\Db::raw('price+2')])
->update();
}
public function create()
{
// 1.用save()方法添加一条记录
// 2.用静态方法完成添加数据
$data=[
'name'=>'java',
'author'=>'java',
'price'=>120,
'publish'=>'1557149944'
];
$field = ['name','author','price','publish'];
BookModel::create($data,$field);
// 用构造器添加数据据
BookModel::insert($data);
}
// 模型删除数据
public function delect()
{
// 直接删除主键
BookModel::destroy(21);
BookModel::destroy([22,23]);
// 用闭包删除数据
BookModel::destroy(function ($query){
$query->where('price',120);
});
// 用Db构造器删除数据:
BookModel::where('price','<',80)
->where('price','>',10)
->delete();
}
// 软删除:
public function softDelete()
{
// 软删除操作
BookModel::destroy(2);
// 正常查询时不默认不显示被软删除过的数据
$book= BookModel::where('id','<',10)
->select();
dump($book);
echo '<hr>';
$book = BookModel::withTrashed()->where('id','<',10)
->select();
dump($book);
echo '<hr>';
$book = BookModel::onlyTrashed()->select();
dump($book);
}
}<?php
/**
* Created by PhpStorm.
* User: 普通用户
* Date: 2019/6/18
* Time: 21:24
*/
namespace app\index\model;
use think\Model;
use think\model\concern\SoftDelete;
class Book extends Model
{
use SoftDelete;
protected $table = 'book';
protected $pk = 'id';
protected $deleteTime='delete_time';
protected $defaultSoftDelete=0;
}经过多日的反复练习,对tp5的框架配置,模型,控制器,等概念有了初步的掌握,对后续学习tp5.1不再束手无策啦。本案例对模型中对应数据表时要设置需要的属性,否则无法正常使用
use SoftDelete;
protected $table = 'book';
protected $pk = 'id';
protected $deleteTime='delete_time';
protected $defaultSoftDelete=0;
软删除添加字段时要设置好默认值,以便运算查询。

批改老师:查无此人批改时间:2019-06-20 09:50:12
老师总结:完成的不错。学习就是找到学习的方法。继续加油。