abstrak:<?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 { // 模型實(shí)例化 public function instance(BookModel $book) { $book->name='Word、Excel、PPT2016從入門(mén)到精通'; $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); // 返回值可以用數(shù)組或?qū)ο蠓绞将@取 echo '以數(shù)組方式查詢書(shū)名: '.$book['name'].'<br>'; echo '以對(duì)象方式查詢書(shū)名:'.$book->name; // 用閉包方式查詢 $book = BookModel::get(function ($query){ $query->where('price','>','100')->where('id','>','1'); }); echo '<hr>'.'書(shū)本價(jià)格大于100元的記錄(單條):'.'<br>'; dump($book); // 用PD類的查詢構(gòu)造器來(lái)進(jìn)行查詢 echo '價(jià)格少于10元的書(shū)本:','<br>'; $book = BookModel::field('name,price') ->where('price','<',10) ->find(); dump($book); echo '<hr>'; // 查詢多條記錄: echo '顯示所了數(shù)據(jù):'; $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 '書(shū)本價(jià)格大于10元的記錄:'; dump($book); echo '<hr>'; echo '以下書(shū)本價(jià)格大于10玩的記錄以遍歷方式顯示輸出'.'<br>'; foreach ($book as $books){ echo '書(shū)本Id:'.$books->id.'<br>'; echo '書(shū)本名:'.$books->name.'<br>'; echo '書(shū)本價(jià)格:'.$books->price.'<br>'; echo '<hr>'; } echo '用請(qǐng)求對(duì)象對(duì)數(shù)據(jù)庫(kù)查詢','<br>'; $price = $this->request->param('price')?:10; $book = BookModel::all(function ($query) use($price){ $query->where('price','>',$price); }); dump($book); } // 模型修改數(shù)據(jù)庫(kù) public function update() { // 對(duì)單一記錄的賦值修改 $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構(gòu)造器更新數(shù)據(jù) BookModel::where('price','<100',100) ->data(['price'=>\think\Db::raw('price+2')]) ->update(); } public function create() { // 1.用save()方法添加一條記錄 // 2.用靜態(tài)方法完成添加數(shù)據(jù) $data=[ 'name'=>'java', 'author'=>'java', 'price'=>120, 'publish'=>'1557149944' ]; $field = ['name','author','price','publish']; BookModel::create($data,$field); // 用構(gòu)造器添加數(shù)據(jù)據(jù) BookModel::insert($data); } // 模型刪除數(shù)據(jù) public function delect() { // 直接刪除主鍵 BookModel::destroy(21); BookModel::destroy([22,23]); // 用閉包刪除數(shù)據(jù) BookModel::destroy(function ($query){ $query->where('price',120); }); // 用Db構(gòu)造器刪除數(shù)據(jù): BookModel::where('price','<',80) ->where('price','>',10) ->delete(); } // 軟刪除: public function softDelete() { // 軟刪除操作 BookModel::destroy(2); // 正常查詢時(shí)不默認(rèn)不顯示被軟刪除過(guò)的數(shù)據(jù) $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; }
經(jīng)過(guò)多日的反復(fù)練習(xí),對(duì)tp5的框架配置,模型,控制器,等概念有了初步的掌握,對(duì)后續(xù)學(xué)習(xí)tp5.1不再束手無(wú)策啦。本案例對(duì)模型中對(duì)應(yīng)數(shù)據(jù)表時(shí)要設(shè)置需要的屬性,否則無(wú)法正常使用
use SoftDelete;
protected $table = 'book';
protected $pk = 'id';
protected $deleteTime='delete_time';
protected $defaultSoftDelete=0;
軟刪除添加字段時(shí)要設(shè)置好默認(rèn)值,以便運(yùn)算查詢。
Guru membetulkan:查無(wú)此人Masa pembetulan:2019-06-20 09:50:12
Rumusan guru:完成的不錯(cuò)。學(xué)習(xí)就是找到學(xué)習(xí)的方法。繼續(xù)加油。