abstract:<?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;
软删除添加字段时要设置好默认值,以便运算查询。
Correcting teacher:查无此人Correction time:2019-06-20 09:50:12
Teacher's summary:完成的不错。学习就是找到学习的方法。继续加油。