完成创建一张图书表,并创建它的模型,进行用模型方法对数据库进行操作

Original 2019-06-20 00:06:39 486
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;

软删除添加字段时要设置好默认值,以便运算查询。

2019-06-20_000244.jpg

Correcting teacher:查无此人Correction time:2019-06-20 09:50:12
Teacher's summary:完成的不错。学习就是找到学习的方法。继续加油。

Release Notes

Popular Entries