亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 34
粉絲 0
評(píng)論 0
訪(fǎng)問(wèn)量 33872
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
524tp學(xué)習(xí)閉實(shí)現(xiàn)包實(shí)現(xiàn)查詢(xún),軟刪除功能,軟刪除恢復(fù)
1A7498的博客
原創(chuàng)
1448人瀏覽過(guò)
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Staff as StaffModel;
use think\Db;
use think\model\concern\SoftDelete;

class Staff extends Controller
{
    public function instance(StaffModel $staff)//依賴(lài)注入
    {
        //$staff = new StaffModel();//模型實(shí)例化
        dump($staff->getName());//查看模型名稱(chēng)
        $staff->name = 'peter';
        $staff->sex = 0;
        $staff->age = 11;
        $staff->salary = 1578;
        $staff->save();
        return '新增成功,id='.$staff->staff_id;
    }
    //模型查詢(xún)
    public function query()
    {
        //單挑記錄:get(主鍵/閉包)
        //閉包:匿名回調(diào)函數(shù),將函數(shù)作為參數(shù)進(jìn)行傳遞
        // new StaffModel();
        $staff = StaffModel::get(2);
        dump($staff);
        echo '<hr>';
        var_dump($staff);
        echo '<hr>';
        echo $staff['name'],'<br>';
        echo $staff->name,'<br>';

        //用閉包來(lái)創(chuàng)建查詢(xún)條件
        $staff = StaffModel::get(function ($query){
           $query->where('sex',0)->where('salary','>',8000);
        });
        dump($staff);
        echo '<hr>';

        //直接靜態(tài)調(diào)用Db類(lèi)的查詢(xún)構(gòu)造器進(jìn)行查詢(xún)
        //StaffModel == Db::table('staff')
        StaffModel::where('sex',0)
            ->where('salary','>',8000)
            ->find();
        dump($staff);
        echo '<hr>';


        //多條記錄查詢(xún):all(主鍵列表/閉包)
        //返回值是多個(gè)數(shù)組、對(duì)象數(shù)組
        //$staff = StaffModel::all();
        //$staff = StaffModel::all([1,2,4]);
        $staffs = StaffModel::all(function ($query){
           $query->where('age','<',20)->where('salary','>',1000);
        });
        dump($staffs);
        echo '<hr>';


        foreach ($staffs as $staff){
            echo '姓名'.$staff->name.'<br>';
            echo '年寧'.$staff->age.'<br>';
            echo '工資'.$staff->salary.'<hr>';
        }


        //采用閉包來(lái)實(shí)現(xiàn)請(qǐng)求變量注入到閉包條件中
        //$this->request:請(qǐng)求對(duì)象
        $age = $this->request->param('age')?:20;
        $salary = $this->request->param('salary')?:1000;
        $staffs = StaffModel::all(function ($query) use ($age,$salary){
            $query->where('age','<',$age)->where('salary','>',$salary);
        });
        dump($staffs);



    }

    //模型更新操作
    public function update()
    {
        $staff = StaffModel::get(10);
        $staff->name = '10hao';
        $staff->save();

        //靜態(tài)方法:update(數(shù)據(jù),條件,字段)
//        StaffModel::update(
////            ['name'=>'十0號(hào)'],
////            ['staff_id'=>2]
////        );

        //復(fù)雜更新
//        StaffModel::update(
//            ['salary'=>\think\Db::raw('salary-2000')],//更新工資降低2000
//            function ($query){
//                $query->where('age','>',50);//獲取年齡大于50的信息
//            }
//        );

        //構(gòu)造器更新數(shù)據(jù)
        StaffModel::where('age','>',50)
            ->data(['salary'=>\think\Db::raw('salary-2000')])
            ->update();

    }
    //創(chuàng)建模型:添加數(shù)據(jù)
    public function create()
    {
        $data = [
            'name'=>'sss888',
            'sex'=>'0',
            'age'=>252,
            'salary'=>8888
        ];
        //$field = ['name','age'];//限制傳入數(shù)據(jù)類(lèi)型
        //StaffModel::create($data,$field);


        //用查詢(xún)構(gòu)造器來(lái)插入數(shù)據(jù)
        StaffModel::insert($data);
    }
    //模型刪除
    public function delete()
    {
        //destroy(主鍵、主鍵列表、閉包)
        //StaffModel::destroy(31);


        //刪除條件推薦使用閉包
        StaffModel::destroy(function ($query){
           $query->where('age','>',55)->where('salary','>=',5000);
        });

        //查詢(xún)器實(shí)現(xiàn)刪除
        StaffModel::where('age','>',35)->delete();
    }

    //軟刪除
    public function softDelete()
    {
        StaffModel::destroy(30);
        //軟刪除的數(shù)據(jù)在普通查詢(xún)中不可見(jiàn)
//        $res = StaffModel::Where('staff_id > 25')->select();
//        dump($res);

        //查看軟刪除的數(shù)據(jù)
        $res = StaffModel::withTrashed()->Where('staff_id > 25')->select();

        //只查看軟刪除數(shù)據(jù)
        $res = StaffModel::onlyTrashed()->select();

        dump($res);
    }
    //軟刪除恢復(fù)
    public function restore()
    {
//        StaffModel::update(
//            ['delete_time'=>0],
//            ['staff_id'=>30]
//            );
        StaffModel::onlyTrashed() -> find(30)-> restore();//軟查詢(xún)并使用restorr恢復(fù)軟刪除數(shù)據(jù)
    }
}

軟刪除恢復(fù)執(zhí)行的sql語(yǔ)句

UPDATE `staff` SET `delete_time` = 0 WHERE ( `staff_id` = 30 ) AND `delete_time` <> 0

本質(zhì)意義是將數(shù)據(jù)表中的delete_time重置或者更新為0

所以使用更新也可以實(shí)現(xiàn)軟恢復(fù)

批改狀態(tài):未批改

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
  • 2018-03-16 11:39:01
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線(xiàn)php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)