Heim > Artikel > PHP-Framework > Fassen Sie die allgemeinen Funktionen von thinkphp6 zusammen
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 .
Empfohlenes Lernen: „PHP-Video-Tutorial“
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
1. Laden Sie tp6 herunter, erstellen Sie ein Projekt topthink/think tp
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');5. 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
k][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
$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. Paginierungreturn $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
Pagination 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
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同时使用
tp6针对and查询和or查询有快捷方法
但是这些快捷方法会有很多局限性,当我们对数据进行一系列的复杂查询时这些快捷方法就会出现很多问题例如:
$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!