亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

快速入門ThinkPHP 5.0 --模型篇

難度中級
時長 3小時 0分
學習人數
綜合評分9.67
70人評價 查看評價
10.0 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • Model的使用方法


    use app\模塊\model\模型類名


    1、$res = 模型類名::get(1);

    2、$user = new 模型類名;

    ? ?$res = $user::get(1);


    3、使用Loader

    ? ?use think\Loader;

    ? ?$user = Loader::model('模型類名');

    ? ?$res = $user::get(1);


    4、助手函數

    ? ?$user = model('模型類名');

    ? ?$res = $user::get(1);


    查看全部
    1 采集 收起 來源:什么是模型

    2018-11-05

  • thinkphp定義model非常方便,只需要在app/index下新建model文件夾,同時以數據表的名稱命名.php文件,引入model類,即可定義。

    model的命名規范:一般model的名字和表名是對應的,例如 表名為imooc_user->模型名User.php 表名imooc_user_info->模型名UserInfo.php
    一般一個表對應一個model類,model類里面是對這個表的增刪改查的各種操作

    查看全部
    0 采集 收起 來源:什么是模型

    2018-11-05

  • 常用鏈式操作 ??

    原理:Db類的鏈式方法返回Db對象,可以繼續使用Db對象的這些方法對查詢數據進行一些條件構造以及范圍的選擇和排序等等;


    $res=$db

    ->where('id','>',5) 條件ID>5

    ->field('username','id') 只搜索username和id兩個字段

    ->order('id DESC') order排序 id DESC ? id倒序

    ->limit(3,7) limit截取 ?3,7 ? 從3開始截取7個

    ->page(3,5) page(m,n)多用于分頁//limit分頁limit((m-1)*n,n)== m:當前頁數,n:每頁多少條數據

    ->group('`group`') //group是關鍵字,這里用``進行轉義

    ->select(); select( ); ?搜索

    var_dump($res);


    注意:order對group是不起作用的;就是在執行的group進行分組的時候,并不是在你order排序的基礎上進行的;

    group('字段'),他會根據字段的值為分類標準進行分類,比如字段值為1的單獨查出來,字段值為1的單獨查出來;


    查看全部
    0 采集 收起 來源:鏈式操作

    2018-11-04

  • 數組的方式可以給 ? 值的數組的第一個參數設置條件結構 where(['id' => ['LT',5]])等同于where('id<5')
    也可以同時有兩個查詢條件,看截圖

    查看全部
    0 采集 收起 來源:條件構造器

    2018-11-04

  • $db = Db::name('user'); #備注信息 #EQ = #NEQ <> #LT < #ELT <= #$GT > #EGT >= #BETWEEN BETWEEN * AND * #NOTBETWEEN NOTBETWEEN * AND * #IN IN (*,*) #NOTIN NOT IN (*,*) $sql = $db->where("id", "in","1,2,3") ->whereOr("username", "eq", "17771258") ->whereOr("num", 'lt', "10") ->where("email","[email protected]") ->buildSql(); dump($sql);

    查看全部
    0 采集 收起 來源:條件構造器

    2018-11-04

  • 刪除:

    delete(' ');函數 刪除 ?沒有條件是不會執行操作的

    #delete('') 返回影像記錄的行數 加where()條件,或者delete(''主鍵的值);

    $res=$db->where(['id'=>2])->delete();

    $res=$db->delete(1);括號里是主鍵id的值;

    如果where("1=1")的話會刪除所有記錄(慎用)只要where每次接收到的是true就可以;就會全部刪除

    $res=$db->where("1=1")->delete( );


    查看全部
  • update(' ');函數 ?語法 更新數據


    $res=$db->where(['id'=>幾幾幾])->update(['字段名'=>'更新內容']); var_dump('res');

    update(' '); 返回影像行數


    setField(' ')函數 語法 更新某一條數據

    $res=$db->where(['id'=>幾幾幾])->setField(['字段名'=>'更新內容']); var_dump('res');

    setField(' '); 返回影像行數,每次只更新一個字段


    setInc(' ')函數 語法 數量+1

    $res=$db->where(['id'=>幾幾幾])-setInc('num'); var_dump('res');

    #setInc('某個字段') ? 返回影像行數,每執行一次,都加1 ?通常用于新聞瀏覽數


    setDec(' ')函數 語法 數量-1

    $res=$db->where(['id'=>幾幾幾])-setDec('num'); var_dump('res');

    #setInc('某個字段') ? 返回影像行數,每執行一次,都減1 ?通常用于新聞瀏覽數


    查看全部
  • $db = Db::name('user'); #insert 返回值是影響記錄的行數,插入數 #insetGetId 返回值插入數據的自增id #insertAll 返回插入數據成功的行數 // $res = $db->insert([ // 'email' ? => 'imooc_02', // 'password' ?=> md5('imooc_02'), // 'username' ?=> 'imooc_02' // ]); // $res = $db->insertGetId([ // 'email' ? => '[email protected]', // 'password' ?=> md5('imooc_03'), // 'username' ?=> 'imooc_03' // ]); $data = []; for($i=10; $i<20; $i++) { $data[] = [ 'email' ? => "imooc_03_{$i}@qq.com", 'password' ? => md5("imooc_03_{$i}"), 'username' ? => "imooc_03_{$i}" ]; } $res = $db->insertAll($data); dump($res);

    查看全部
    0 采集 收起 來源:添加數據

    2018-11-04

  • #使用sql語句方式查詢數據庫

    //$res = Db::query("select *from imooc_user where id=?",[1]);

    $res =Db::execute("insert into imooc_user set username=?,password?,email=?",['imooc',md5('imooc'),'[email protected]']);

    #selsect 返回所有記錄 返回的結果是一個二維數組

    #如果結果不存在 返回一個空數組

    $res = Db::table('imooc_user')->select();

    #find 返回一條記錄 返回的結果是一個二維數組

    #如果結果不存在返回NULL

    $res = Db::table('imooc_user')->where(['id'=>10])->find();

    #value ?返回一條記錄 并且是每條記錄的某個字段值

    #如果結果不存在 返回NULL

    $res = Db::table('imooc_user')->value('username');

    #column 返回一個一維數組 數組中的value值就是我們要獲取的列的值

    #如果存在第二個參數 就返回這個數組并且用第二個參數的值作為key值

    #如果不存在返回NULL

    $res = Db::table('imooc_user')->column('username');


    #find ?返回一條記錄 返回的結果是一個二維數組

    #如果結果不存在 返回NULL

    $res = Db::table('imooc_user')->find();

    #value 返回一條記錄 并且是字條記錄的某個字段值

    #如果結果不存在 返回NULL

    $res = Db::table('imooc_user')->value('username');

    $res = Db::name('user')->select();

    實例化

    $res = db('user',[],false)->find();


    查看全部
  • 修改數據庫配置的四種方式

    1.可在config下的database.php返回配置信息,直接 Db::connect()(如果參數為空,那么會默認使用database.php中的配置連接)

    2.在方法里面引入 use think\Db;Db::connect(array);數組即數據庫連接配置

    3.同樣是Db::connect("mysql://root:[email protected]:3306:/databasename#utf8"); ? ? ? ? ? ? ? ? ?//use think\Db?

    4.在配置文件中,添加一個數組,Db::connect("數組鍵名");
    //use think\Db


    查看全部
  • Db::方法 因為是單例模式 不會重復實例化 而用db駐守函數會每次實例化,消耗內存,所以在后面加上false,這樣db('表名',[],false)就不會每次實例化了

    查看全部
  • dsn方式連接數據庫 此方式優先級高于單獨寫的方式

    Db::connect('dsn');

    此時只是配置數據庫 并沒有鏈接

    只有用刀query時才是鏈接數據庫

    查看全部
  • 全局添加更新時間需要在表中新建create_time和update_time字段,配置文件中設置“auto_timestamp"=>true,一般不開啟這個功能,否則表中不存在該字段時會報錯,真正刪除需要把destroy方法或delete方法的第二個參數設置為true

    use?think\Model;
    use?traits\model\SoftDelete;
    class?User?extends?Model{
    ????use?SoftDelete;使用軟刪除
    ????protected?$autoWriteTimestamp?=?true;//開啟自動更新時間
    ????protected?$createTime?=?false;//設置為false代表不使用創建時間
    ????protected?$updateTime?=?"update_at";//設置自定義更新時間的字段
    ????protected?$deleteTime?=?"delete_at";//設置自定義的軟刪除字段
    }


    查看全部
  • <?php
    ????namespace?app\index\model;
    ????use?think\Model;
    ????class?User?extends?Model{
    ????????protected?$auto?=?[
    ????????????'time'
    ????????];
    ????????protected?$insert?=?[
    ????????????'time_insert'
    ????????];
    ????????protected?$update?=?[
    ????????????'time_update'
    ????????];
    ????????public?function?setPasswordAttr($val,$data){
    ????????????//第二個參數是數組數據
    ????????????return?$val.$data['email'];
    ????????????return?md5($val);
    ????????}
    ????????public?function?setTimeAttr(){
    ????????????return?time();
    ????????}
    ????????public?function?setTimeInsertAttr(){
    ????????????return?time();
    ????????}
    ????????public?function?setTimeUpdateAttr(){
    ????????????return?time();
    ????????}
    ????}



    查看全部
  • 可以在控制器里輸出模型定義好的內容

    查看全部
    0 采集 收起 來源:模型獲取器

    2018-10-29

舉報

0/150
提交
取消
課程須知
1、有一定的php基礎。 2、對ThinkPHP5 有一定的了解。 3、沒有接觸過tp5 的學生可以先看下我之前錄制的 <快速入門 ThinkPHP5 基礎篇>
老師告訴你能學到什么?
1、ThinkPHP5 的數據庫操作類 2、ThinkPHP5 的數據模型 3、使用數據模型快速對數據庫進行增刪改查的操作 4、ThinkPHP5 的自動完成操作 5、模型的自動時間戳和軟刪除

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!