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

Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen

WBOY
Freigeben: 2022-05-07 21:35:48
nach vorne
4102 Leute haben es durchsucht

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');
Nach dem Login kopieren
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'
Nach dem Login kopieren
oder

use think\facade\Request;$code = Request::param('code');
Nach dem Login kopieren
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");
Nach dem Login kopieren
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();
Nach dem Login kopieren
hinzu Fügen Sie unten eine Zeile hinzu
$resultSet = $this->connection->select($this);
Nach dem Login kopieren
9. Paginierung
return $resultSet;
Nach dem Login kopieren
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(),]);
Nach dem Login kopieren

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);
Nach dem Login kopieren
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(),
    ]);
Nach dem Login kopieren

这里我们想要的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
Nach dem Login kopieren

实际生成的格式为:

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
Nach dem Login kopieren

这里就可以用到闭包查询(注:这只是我学习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(),]);
Nach dem Login kopieren

这时候得到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
Nach dem Login kopieren

已经满足了我的需求,但是还是有一个问题就是如果keywords这个变量没有值的时候他查询的语句格式为:

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

这种情况只需要在加个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(),]);
Nach dem Login kopieren

12、tp6 find查询变动
tp5、tp3我们查询一个表是否存在数据可以直接查询一条

$datafind = db::name('ceshi')->find();
Nach dem Login kopieren

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

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

推荐学习:《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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage