内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

thinkphp6常用功能有哪些

今天小編給大家分享一下thinkphp6常用功能有哪些的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)公司專注于彭山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供彭山營銷型網(wǎng)站建設(shè),彭山網(wǎng)站制作、彭山網(wǎng)頁設(shè)計、彭山網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造彭山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供彭山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

第一步更換composer鏡像

阿里鏡像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Laravel China鏡像: composer config -g repo.packagist composer https://packagist.laravel-china.org

中國全量鏡像:composer config -g repo.packagist composer https://packagist.phpcomposer.com9

在碼云或者git下載案例發(fā)現(xiàn)沒有vendor無法運(yùn)行

composer install --ignore-platform-reqs

或者

composer update --ignore-platform-reqs

Tp6使用

1、下載tp6
composer create-project topthink/think tp

2、設(shè)置多應(yīng)用模式
tp6默認(rèn)是單應(yīng)用訪問默認(rèn)進(jìn)入app/controller里的方法,如果需要做多應(yīng)用開發(fā)(例:http://***.com/admin、http://***.com/index)需要開啟多應(yīng)用模式

composer requiretopthink/think-multi-app

php think build 應(yīng)用名稱(例:index或者admin)

3、模板渲染

tp3: $this->display();tp5: return $this->fetch();tp6: return View::fetch('index');

tp6默認(rèn)缺少很多依賴包的,需要下載

composer require topthink/think-view

控制器引入

use think\facade\View;

4、模板跳轉(zhuǎn)重定向

composer require liliuwei/thinkphp-jump

控制器引入

頭部引入:use \liliuwei\think\Jump;

類內(nèi)引入:use Jump;

如果報錯:

查看app/config/jump.php是否有設(shè)置:

'dispatch_success_tmpl' => app()->getRootPath().'/vendor/qeq66/think-jump/template/jump.html','dispatch_error_tmpl' => app()->getRootPath().'/vendor/qeq66/think-jump/template/jump.html'

5、獲取表單數(shù)據(jù)
控制器引入

use think\facade\Request;$code = Request::param('code');

或者

$code = input("code");

6、數(shù)字驗證碼
composer require topthink/think-captcha

在應(yīng)用app目錄下找到全局中間件middleware.php文件,把下面注釋的代碼\think\middleware\SessionInit::class開啟

7、上傳圖片處理圖片
composer require topthink/think-image

8、MySQL select查詢

從tp5過渡過來的,默認(rèn)select查詢是返回二維數(shù)組,tp6返回數(shù)據(jù)集,雖然官方說和數(shù)組操作基本無區(qū)別

但是有些時候還是數(shù)組好用 例如arr[k][0] = "test"這種間接修改,在默認(rèn)返回的數(shù)據(jù)集中,是報錯的,但是數(shù)組是可以這樣操作的
1、

 db::name('ceshi')->select()->toArray();

2、
修改tp6目錄下的/vendor/topthink/think-orm/src/db的BaseQuery.php

修改示例如圖所示,將圖中畫紅框的位置刪除,并且在

$resultSet = $this->connection->select($this);

下面增加一行

return $resultSet;

9、分頁

$list = db::name('admin_menu')->where($where)->paginate(['list_rows'=> 10,'query' => request()->param(),]);

使用paginate方法獲取分頁數(shù)據(jù),查詢集合無法新增的下標(biāo)值

查詢條件需要增加 ‘query’ => request()->param(),

解決寫法:

php端:

// An highlighted block$list = db::name('admin_menu')->where($where)->paginate(['list_rows'=> 10,'query' => request()->param(),]);$new_arr = array();foreach($list as $k=>$v){$v[$k]['erji_menu'] = “案例”;$new_arr[] = $v;}
// 獲取分頁顯示$page = $list->render();// 模板變量賦值View::assign('list', $new_arr);View::assign('page', $page);

html端

{$page|raw}

分頁引用class修改

tp6\vendor\topthink\think-orm\src\paginator\driver\Bootstrap.php

10、新增數(shù)據(jù)差異
對比tp5 save方法用于更新 add方法用于添加
tp6 save既是更新也是添加 add方法被刪除

db::name('ceshi')->where(array('tz_id'=>$post['tz_id']))->save($users);db::name('ceshi')->save($users);

加主鍵where是更新不加主鍵是添加,但是會出現(xiàn)問題執(zhí)行成功只會返回 0,1
不會像tp5 add方法返回添加數(shù)據(jù)的主鍵id

/**
 * 插入記錄
 * @access public
 * @param array   $data         數(shù)據(jù)
 * @param boolean $getLastInsID 返回自增主鍵
 * @return integer|string
 */public function insert(array $data = [], bool $getLastInsID = false){
    if (!empty($data)) {
        $this->options['data'] = $data;
    }

    return $this->connection->insert($this, $getLastInsID);}

add方法改成了insert方法,雖然注釋上面寫著返回自增主鍵,但是我這邊測試還是沒有拿到自增主鍵,不清楚是版本問題還是什么這里不深究如果你沒遇到就當(dāng)我沒說

/**
 * 插入記錄并獲取自增ID
 * @access public
 * @param array $data 數(shù)據(jù)
 * @return integer|string
 */public function insertGetId(array $data){
    return $this->insert($data, true);}

然后拿不到只能繼續(xù)找發(fā)現(xiàn)有一個insertGetId可以拿到。也就是說為了快速開發(fā),平時還是用save解決,遇到要拿自增主鍵就換成insertGetId

11、tp6 高級查詢and和or同時使用

tp6針對and查詢和or查詢有快捷方法

但是這些快捷方法會有很多局限性,當(dāng)我們對數(shù)據(jù)進(jìn)行一系列的復(fù)雜查詢時這些快捷方法就會出現(xiàn)很多問題例如:

$where1[] = ["order_khname","like",'%'.$keywords.'%'];$where2[] = ["order_khqq","like",'%'.$keywords.'%'];$where3[] = ["order_khmobile","like",'%'.$keywords.'%'];$where[] = ["order_type","=",$ddzt];$list = db::name('ceshi')
    ->where($where)
    ->whereOr([$where1,$where2,$where3])
    ->paginate([
        'list_rows'=> 10,
        'query' => request()->param(),
    ]);

這里我們想要的sql格式為:

SELECT * FROM `dc_ceshi` WHERE  `order_type` = 0 and ( ( `order_khname` LIKE '%1%' )  OR ( `order_khqq` LIKE '%1%' )  OR ( `order_khmobile` LIKE '%1%' )) LIMIT 0,10

實際生成的格式為:

SELECT * FROM `dc_ceshi` WHERE  `order_type` = 0 OR ( `order_khname` LIKE '%1%' )  OR ( `order_khqq` LIKE '%1%' )  OR ( `order_khmobile` LIKE '%1%' ) LIMIT 0,10

這里就可以用到閉包查詢(注:這只是我學(xué)習(xí)tp6的時候遇到的問題然后在tp6文檔里面找到的解決方式,直接用原生sql也是可以解決,把where條件直接改成一個自定義的字符串也可以解決,用tp5的連接方式也應(yīng)該可以但是我沒試)

$list = db::name('ceshi')
    ->where(function ($query) use ($keywords){
            $query->where("order_khname","like",'%'.$keywords.'%')
                ->whereOr("order_khqq","like",'%'.$keywords.'%')
                ->whereOr("order_khmobile","like",'%'.$keywords.'%');
        })
    ->where($where)
    ->paginate([
    'list_rows'=> 10,
    'query' => request()->param(),]);

這時候得到sql格式為:

SELECT * FROM `dc_ceshi` WHERE  (  `order_khname` LIKE '%1%' OR `order_khqq` LIKE '%1%'  OR `order_khmobile` LIKE '%1%' )  AND `order_type` = 0 LIMIT 0,10

已經(jīng)滿足了我的需求,但是還是有一個問題就是如果keywords這個變量沒有值的時候他查詢的語句格式為:

SELECT * FROM `dc_ceshi` WHERE  (  `order_khname` LIKE '%%' OR `order_khqq` LIKE '%%'  OR `order_khmobile` LIKE '%%' )  AND `order_type` = 0 LIMIT 0,10

這種情況只需要在加個if判斷:

$list = db::name('ceshi')
    ->where(function ($query) use ($keywords){
        if($keywords){
            $query->where("order_khname","like",'%'.$keywords.'%')
                ->whereOr("order_khqq","like",'%'.$keywords.'%')
                ->whereOr("order_khmobile","like",'%'.$keywords.'%');
        }
        })
    ->where($where)
    ->paginate([
    'list_rows'=> 10,
    'query' => request()->param(),]);

12、tp6 find查詢變動
tp5、tp3我們查詢一個表是否存在數(shù)據(jù)可以直接查詢一條

$datafind = db::name('ceshi')->find();

tp6find查詢必須增加where條件或者order排序

$datafind = db::name('ceshi')->order('ID DESC')->find();

以上就是“thinkphp6常用功能有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:thinkphp6常用功能有哪些
分享地址:http://www.rwnh.cn/article12/ipcegc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、動態(tài)網(wǎng)站搜索引擎優(yōu)化、移動網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
绍兴市| 邵东县| 文化| 江津市| 习水县| 辉南县| 米易县| 伊川县| 云霄县| 高邮市| 子长县| 吐鲁番市| 化州市| 安丘市| 临武县| 宣汉县| 东山县| 青河县| 城固县| 武城县| 尚志市| 象州县| 黄石市| 青海省| 深水埗区| 泰安市| 九龙县| 丰镇市| 读书| 屏东县| 阿拉尔市| 博爱县| 九龙县| 上高县| 定陶县| 长治市| 安仁县| 滦平县| 子长县| 黑龙江省| 裕民县|