Heim  >  Artikel  >  PHP-Framework  >  Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen

Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen

WBOY
WBOYnach vorne
2022-05-07 11:45:534032Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über thinkphp. Er organisiert hauptsächlich einige häufig verwendete Funktionen, darunter das Abrufen von Formulardaten, das Festlegen des Multianwendungsmodus, das Rendern von Vorlagen und andere verwandte Inhalte .

Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen

Empfohlenes Lernen: „PHP-Video-Tutorial

Der erste Schritt besteht darin, den Composer-Spiegel zu ändern

Ali-Spiegel: Composer config -g repo.packagist Composer https://mirrors. aliyun.com /composer/

Laravel China Mirror: Composer config -g repo.packagist Composer https://packagist.laravel-china.org

China Full Mirror: Composer config -g repo.packagist Composer https :// packagist.phpcomposer.com9

Im Code-Cloud- oder Git-Download-Fall wird festgestellt, dass es keinen Anbieter gibt und es nicht ausgeführt werden kann

Composer-Installation --ignore-platform-reqs

oder

Composer-Update - -ignore-platform-reqs

Tp6 wird verwendet

1. Laden Sie tp6 herunter, erstellen Sie ein Projekt topthink/think tp

2. Stellen Sie den Multianwendungsmodus ein app/controller standardmäßig. Wenn Sie eine Multianwendungsentwicklung durchführen müssen (zum Beispiel: http://***.com/admin, http://***.com/index), müssen Sie den Multianwendungsmodus aktivieren

Composer erfordert Topthink/Think-Multi-App erfordern topthink/think-view
Controller-Einführung

verwenden Sie thinkfacadeView;

4. Template Jumping Redirect

composer erfordern liliuwei/thinkphp-jump

Controller-Einführung

Header-Einführung: verwenden Sie liliuweithinkJump;

Intra -Klasseneinführung: Jump verwenden;

Wenn ein Fehler gemeldet wird:View app/config/ Hat jump.php Einstellungen:

tp3: $this->display();tp5: return $this->fetch();tp6: return View::fetch('index');
Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen5. Formulardaten abrufen

Der Controller führt

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

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

6. Digitaler Bestätigungscode

Composer erfordert Topthink/Think-Captcha

im Anwendungs-App-Verzeichnis. Suchen Sie die globale Datei middleware middleware.php und aktivieren Sie den unten kommentierten Code thinkmiddlewareSessionInit::class. Laden Sie die Bildverarbeitung hoch Bilder

Composer erfordern Topthink/Think-Image
8. Beim Übergang von tp5 gibt die Standardauswahlabfrage ein zweidimensionales Array zurück, und tp6 gibt einen Datensatz zurück ist im Grunde dasselbe wie Array-Operationen

, aber manchmal sind Arrays immer noch nützlich, zum Beispiel


a

r r

[


Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammenk][0] = „test“ Diese Art der indirekten Änderung meldet einen Fehler im standardmäßig zurückgegebenen Datensatz, aber Arrays können auf diese Weise bearbeitet werden

1,

$code = input("code");
2 ,

Ändern Sie die BaseQuery.php von /vendor/topthink/think-orm/src/ db im tp6-VerzeichnisDas Änderungsbeispiel ist wie im Bild gezeigt, löschen Sie das rote Kästchen im Bild und fügen Sie

 db::name('ceshi')->select()->toArray();
hinzu Fügen Sie unten eine Zeile hinzu
$resultSet = $this->connection->select($this);
9. Paginierung
return $resultSet;
Verwenden Sie die paginate-Methode, um Paginierungsdaten abzurufen und den Indexwert abzufragen, der nicht zur Sammlung hinzugefügt werden kannDie Abfragebedingung muss 'query' => request()->param( ),Lösung:
php hinzufügen Seite:

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

html Seite

{$ Page | RAW}

Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammenPagination Class Modification

tp6VendortOptToUTHINKTHINK-ARMSRCPAGINATORDRIVERBOOTSTRAPSTRAP.PHP

10 wird verwendet, um die Methode für die Methode des Hinzufügens zu aktualisieren. hinzufügen

tp6 save ist sowohl Update als auch Add Add-Methode wird gelöscht

// 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);
Primärschlüssel hinzufügen, wobei Aktualisierung ohne Primärschlüssel, aber Hinzufügen erfolgt, aber es wird Probleme geben, wenn die Ausführung erfolgreich ist, wird nur 0,1 zurückgegeben

Nein gibt die Primärschlüssel-ID der hinzugefügten Daten wie die tp5-Add-Methode zurück Ich bin mir nicht sicher, ob es sich um ein Versionsproblem handelt. Wenn Sie es nicht erlebt haben, gehen Sie einfach davon aus, dass ich es nicht gesagt habe

Wenn Sie es nicht erhalten können, können Sie nur weitersuchen und feststellen, dass es eine insertGetId gibt, die Sie erhalten können. Das heißt, um eine schnelle Entwicklung zu ermöglichen, verwenden wir normalerweise Save, um das Problem zu lösen. Wenn wir den automatisch inkrementierten Primärschlüssel benötigen, ändern wir ihn in insertGetId

11、tp6 高级查询and和or同时使用
Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen
tp6针对and查询和or查询有快捷方法
Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen
但是这些快捷方法会有很多局限性,当我们对数据进行一系列的复杂查询时这些快捷方法就会出现很多问题例如:

$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

这里就可以用到闭包查询(注:这只是我学习tp6的时候遇到的问题然后在tp6文档里面找到的解决方式,直接用原生sql也是可以解决,把where条件直接改成一个自定义的字符串也可以解决,用tp5的连接方式也应该可以但是我没试)

$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

已经满足了我的需求,但是还是有一个问题就是如果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我们查询一个表是否存在数据可以直接查询一条

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

tp6 find查询必须增加where条件或者order排序,为什么不知道。有大神知道指点下O(∩_∩)O哈哈~

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

推荐学习:《PHP视频教程

Das obige ist der detaillierte Inhalt vonFassen Sie die allgemeinen Funktionen von thinkphp6 zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen