<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **Thinkphp5.1**是國內頂級的php框架之一,初學入坑必備 ## 通過composer安裝TP5框架 ~~~ composer create-project topthink/think tp5 ~~~ ## URL解析 serverName/index.php/模塊/控制器/操作/參數 模塊在application文件夾下面 默認有index文件夾(模塊為index) index模塊下面有: 控制器 controller 文件夾 默認是 Index.php (首字母必須大寫) 控制器里面有操作的方法 index() ``` public function index($id){ return $id; } ``` 方法里面帶參數 $id 參數可以帶默認值 ``` public function hello($name='laowang'){ return "hello" . $name; } ``` 訪問URL必須帶上參數名:name/xiaobai就能打印,如果沒有默認則訪問 hello xiaobai ## 模塊設計 多模塊設計: 所有模塊命名空間以app作為根命名空間 ``` application module1 common.php 模塊函數文件 config 配置目錄(可選) controller 控制器(必須) model 模型(可選) view 視圖(可選) ``` 如果只有一個模塊時候,可以綁定這個模塊: public/index.php追加方法: 綁定模塊、控制器 test/index ``Container::get('app')->bind('test')->run->send(); `` 其他模塊就無法訪問 config目錄下的app.php 可以設置空模塊 'empty_module' => 'index' ***** 單模塊設計: config目錄下的app.php設置 'app_multi_module' => false; //支持多模塊改為false 控制器+操作 在application下面可以不存在模塊文件夾,直接寫控制器 controller 環境變量Env 獲取環境變量:應用目錄 return Env::get('app_path'); ***** ## 控制器說明: ### 1,控制器定義 類名和文件名大小寫保持一致,才用駝峰式命名,首字母大寫 繼承Controller基類,可以調用父類的方法,但不是必須的 假如命名有兩個字母組成,例如HelloWorld,訪問時候用_關聯訪問:hello_world config目錄下的app.php配置文件可以關閉URL自動轉換: 'url_convert'=>false; ***** 改變根命名空間方法:由app改成其他名稱 Env全局配置 根目錄添加.env文件 app_namespace=application ***** ### 2,控制器渲染輸出 1,return ,相當于echo ,輸出的是字符串 2, 使用json輸出 ,json()函數 ``` $data= array('a'=>1,'b'=>2,'c'=>3); return json($data); ``` 3,view 輸出模板 ``` public function abc(){ return view(); } ``` 要求在模塊里面創建view文件夾, 里面對應建立相關控制器文件夾 (例如test), 里面建立相關方法名稱(abc)的html文件 abc.html config目錄下的app.php配置文件可以控制默認輸出類型: 'default_return_type' => 'html'; 默認是html(文本) 'default_ajax_return_type' => 'json'; 一般來說,正常頁面都是html輸出,用于模板。AJAX默認為JSON 如果繼承了基類控制器,可以定義控制器初始化方法:initialize(); //初始化,必須執行的方法 protected function initialize(){ //只支持輸出(echo),不支持返回(return) echo "init"; } ***** ## 控制器操作 前置操作: 繼承Controller類后可以設置一個$beforeActionList 屬性來創建前置方法: //里面是寫方法名 except是指定不調用哪個方法; only 是指定調用哪幾個方法 ``` protected $beforeActionList= [ 'first', 'second'=>['except'=>'one'], 'third'=>['only'=>'one,two'], ]; protected function first(){ echo "first<br/>"; } ``` ***** 跳轉和重定向 ``` protected $flag =false; public function index(){ if($this->flag){ //如果不指定URL ,則返回 $_SERVER['HTTP_REFEER'] this->success('注冊成功','../'); }else{ this->error("失敗"); } } ``` 跳轉默認模板文件 thinkphp/tpl/dispatch_jump.tpl 'dispatch_success_tmpl' => Env::get('think_path'); ***** 空方法與空控制器(訪問不存在時不報錯) 默認空方法 ``` public function _empty($name){ return "此方法不存在" .$name; } ``` 默認空控制器 在controoler 里創建Error.php ``` class Error{ public function index(Request $request){ return "此控制器不存在".$request->controller(); } } ``` app.php配置文件修改默認空控制器 'empty_controller' => 'Error' ***** ## ## 數據庫操作 配置文件在config/database.php ``` use think/Db; public function getNoModelData(){ //table需要加前綴 ; name不需要加前綴 //$data = Db::table('完整表名')->select(); $data = Db::name('表名')->select(); return json($data); } ``` ***** 定義Mopdel: 在模型里面新建 model 文件夾;并且創建與數據表名一致的php文件:User.php ``` namespace app\model; use think\Model; class user extends Model{ } ``` ***** 在控制器里面使用 ``` use app\index\model\User; public function getModelData(){ $data= User::select(); return json($data); } ``` ***** 建議調試時候打開Trace 配置文件app.php 'app_trace' = true; 右下角調試圖標里面的SQL可以看到完整的sql語句 ***** ### 查詢方法: 1. 查詢一條數據: Db::name('表名')->find() 【LIMIT 1】 2. 查看最后執行sql: Db::getLastSql(); 3. 查詢條件: Db::name('表名')->where('id',10)->find(); 5. 沒有查詢到值會返回null 6. 沒有查詢到數據時返回異常: Db::name('表名')->where('id',10)->findOrFail(); 7. 沒有查詢到數據時返回空數組: 8. Db::name('表名')->where('id',10)->findOrEmpty(); 10. 查詢多條數據: Db::name('表名')->select() 11. 沒有查詢到數據時返回異常: 12. Db::name('表名')->where('id',10)->selectOrFail(); 14. 查詢指定字段單個值:Db::name('表名')->where('id',10)->value('username'); 16. 查詢指定列多個:Db::name('表名')->column('username'); 17. 指定id作為索引:Db::name('表名')->column('username','id'); ----------------------------------------------------- ### 新增insert() ``` $data=[ "name"=>"wang", "age"=>"32" ]; $flag = Db::name('表名')->insert($data); if($flag) return "success"; //獲取新增的id return Db::insertGetId(); ``` ### 批量新增 insertAll() ### ``` $dataall=[ [ "name"=>"wang", "age"=>"32" ], [ "name"=>"li", "age"=>"27" ] ]; Db::name('表名')->insertAll($data); ``` ***** ### 修改 update() ### //批量修改 ``` $data=[ "name"=>"laowang" ]; $update= Db::name('表名')->where('id',10)->update($data); return $update; ``` 增值 inc() 參數1:字段名;參數2,數量 Db::name('表名')->inc('字段名',1)->where('id',10)->update($data); 減值 dec()參數1:字段名;參數2,數量 Db::name('表名')->dec('字段名',1)->where('id',10)->update($data); 字段使用mysql函數 exp() 參數1:字段名;參數2,方法 Db::name('表名')->exp('email','UPPER(email)')->where('id',10)->update($data); ### raw() 方法修改更新: ``` $data = [ 'name' => 'wang', 'email' => Db::raw('UPPER(email)'), 'price' => Db::raw('price - 3'), 'id' => 10 ]; Db::name('表名')->update($data); ``` //修改單個字段 setField() $update= Db::name('表名')->where('id',10)->setField('name','老王'); ***** ### 刪除 delete() //刪除單條 Db::name('表名')->delete(10); //刪除多條 Db::name('表名')->delete([1,2,3,4]); //根據條件刪除 Db::name('表名')->where('id',10)->delete(); //全部刪除 Db::name('表名')->delete(true); ***** ### 比較查詢 = 、<> 、 > 、 < 等于、不等于、大于、小于 Db::name('表名')->where('id','<>',10)->select(); ### ### 區間查詢 like Db::name('表名')->where('name','like','wang%')->select(); 支持數組傳遞多個值: Db::name('表名')->where('name','like',['wang%','li%'],'or')->select(); select * from 表名 where('name' like 'wang% or 'name' like 'li%') ***** whereLike() Db::name('表名')->whereLike('name','wang%')->select(); whereNoLike() Db::name('表名')->whereNoLike('name','wang%')->select(); ***** between 區間段從多少到多少 Db::name('表名')->whereLike('id','between','19,25')->select(); Db::name('表名')->whereLike('id','between',[19,25])->select(); Db::name('表名')->wherebetween('id',[19,25])->select(); //區間段不在從多少到多少 Db::name('表名')->whereNotbetween('id',[19,25])->select(); ***** in 包含多少 Db::name('表名')->where('id','in','19,20,25'])->select(); Db::name('表名')->whereIn('id','19,20,25'])->select(); //不包含多少 Db::name('表名')->whereNotIn('id','in','19,20,25'])->select(); ***** null 查詢為null的數據 參數:字段名 Db::name('表名')->where('uid','null')->select(); Db::name('表名')->whereNull('uid')->select(); notnull 查詢不為null的數據 參數:字段名 Db::name('表名')->where('uid','not null')->select(); Db::name('表名')->whereNotNull('uid')->select(); ***** 自定義字段后的SQL exp Db::name('表名')->where('id','exp','In(1,2,3)')->select(); Db::name('表名')->whereExp('id','In(1,2,3)')->select(); ***** ### 時間查詢 操作: >、<、 >=、 <= Db::name('表名')->where('create_time','> time','2019-01-01')->select(); Db::name('表名')->whereTime('create_time','>','2019-01-01')->select(); ***** ### ### 區間查詢 Db::name('表名')->where('create_time','between time',['2019-01-01','2019-10-30'])->select(); Db::name('表名')->whereBetween('create_time',['2019-01-01','2019-10-30'])->select(); //查詢可以當天 whereBetweenTime: 當天查詢:一個參數; 區間查詢: 兩個參數 Db::name('表名')->whereBetweenTime('create_time','2019-01-01','2019-10-30')->select();
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看