Heim  >  Artikel  >  PHP-Framework  >  Vorstellung eines nützlichen ThinkPHP Repository-Pakets

Vorstellung eines nützlichen ThinkPHP Repository-Pakets

藏色散人
藏色散人nach vorne
2021-07-14 15:15:002369Durchsuche

Einführung

think-repository ist ein für thinkphp 6.0.* bereitgestelltes Repository zum Abstrahieren der Datenschicht, wodurch unsere Anwendungen flexibler für die Wartung werden. think-repository 是为 thinkphp 6.0.* 提供的存储库用于抽象数据层,使我们的应用程序更灵活地进行维护。

你懂的

ThinkPHP

>= thinkphp 6.0.*

安装教程

Composer

composer require fanxd/think-repository dev-master

使用说明

最好在多应用下使用

命令

php think fanxd:repository Post

路由

Route::resource(‘post’, ‘PostController’);

可用的方法

  • first($id) // 查找单条记录
  • get() // 查找记录
  • paginate() // 分页查询
  • create($data) // 写入数据
  • save($data) // 保存当前数据对象
  • delete($where) // 删除记录
  • update($where,$data) // 更新记录
  • find($id) // 查找单条记录 如果不存在则抛出异常
  • findWhere($where,$columns = [‘*’]) // 指定AND查询条件 查找单条记录
  • with([]) // 关联查询
  • search([]) // 数据搜索
  • order($order) // 排序

查找记录

$posts=$this->repository->get();

分页查询

$posts=$this->repository->paginate($limit);

按结果按id查找

$posts=$this->repository->find($id);

$posts=$this->repository->first($id);

加载模型关系

$posts=$this->repository->with([‘state’])->find($id);

按结果按字段名查找

$posts=$this->repository->findByField(‘title’, ‘Hello’);

按结果由多个字段查找

$posts=$this->repository->findWhere([
‘id’ => 1], [‘id’, ‘title]);

按结果在一个字段中查找多个值

$posts=$this->repository->findWhereIn(‘id’, [1,2,3,4,5]);

通过排除一个字段中的多个值,按结果查找

$posts=$this->repository->findWhereNotIn(‘id’, [6,7,8,9,10]);

写入数据

$post = $this->repository->create($data);

更新记录

$posts=$this->repository->update($where, $data);

删除记录

$this->repository->delete($id)

按多个字段删除存储库中的条目

$this->repository->deleteWhere([
‘id’ => 1, ‘user_id’ => 1])

Transformer

系统会自动生成transform

Sie wissen schon

ThinkPHP>= thinkphp 6.0.*

🎜🎜Installationsanleitung🎜

🎜🎜Composer

🎜🎜composer erfordert fanxd/think - Repository dev-master🎜🎜

🎜🎜Gebrauchsanweisung

🎜🎜Es ist am besten, es unter mehreren Anwendungen zu verwenden🎜🎜
🎜🎜Befehl
🎜🎜 php think fanxd:repository Post🎜🎜

🎜🎜Route

🎜🎜Route::resource('post', 'PostController');🎜🎜

🎜🎜Verfügbare Methoden

    first($id) // Einen einzelnen Datensatz finden
  • get() // Einen Datensatz finden
  • paginate() // Abfrage paginieren
  • create($ data) // Daten schreiben
  • save($data) // Aktuelles Datenobjekt speichern
  • delete($where) // Datensatz löschen
  • update( $where,$data) //Datensatz aktualisieren
  • find($id) //Einen einzelnen Datensatz suchen und eine Ausnahme auslösen, wenn er nicht existiert
  • findWhere( $where,$columns = [ '*']) // UND-Abfragebedingungen angeben, um einen einzelnen Datensatz zu finden
  • with([]) // Verwandte Abfrage
  • search([] ) // Datensuche
  • order($order) // Sortieren

🎜🎜Datensätze suchen

🎜🎜$posts=$this->repository ->get();🎜🎜

🎜🎜Seitenabfrage

🎜🎜$posts=$this->repository->paginate($limit);🎜🎜

🎜🎜Suche nach ID nach Ergebnis

🎜🎜$ posts=$this->repository->find($id);🎜🎜$posts=$this->repository->first($id);🎜🎜

🎜🎜Modellbeziehung laden

🎜🎜$posts=$this->repository->with(['state'])->find($id);🎜🎜

🎜🎜Suchen nach Feldname nach Ergebnis

🎜 🎜$posts=$this->repository->findByField('title', 'Hello');🎜🎜

🎜🎜Suche nach mehreren Feldern

🎜🎜 $posts=$this- >repository->findWhere([
'id' => 1], ['id', 'title]);🎜🎜

🎜🎜Mehrere Werte finden in einem Feld nach Ergebnis🎜🎜$posts=$this->repository->findWhereIn('id', [1,2,3,4,5]);🎜🎜

🎜🎜By Ausschließen mehrerer Beiträge in einem Feldwert, Suche nach Ergebnis

🎜🎜$posts=$this->repository->findWhereNotIn('id', [6,7,8,9,10]);🎜🎜

🎜🎜 Daten schreiben

🎜🎜$post = $this->repository->create($data);🎜🎜

🎜🎜Datensatz aktualisieren

🎜🎜$posts=$ this-> Repository->update($where, $data);🎜🎜

🎜🎜Datensatz löschen

🎜🎜$this->repository->delete($id)🎜🎜

🎜🎜Drücken Sie auf „Mehrere Felder“, um Einträge im Repository zu löschen

🎜🎜$this->repository->deleteWhere([
'id' => 1, 'user_id' => 1] )🎜🎜

🎜🎜Transformer

🎜Das System generiert automatisch die transform-Datei. Die Hauptfunktion besteht für mich darin, die Schnittstelle zu verschönern und zu erstellen Wir werden professioneller :)🎜
<?php

namespace app\api\transform;use fanxd\repository\command\transform\Transform;class PostTransform extends Transform{
    public function transform($items)
    {
        return [
            &#39;id&#39;            => $items['id'],
            //... 
            'createTime'    => $items['create_time'],
            'updateTime'    => $items['update_time']
        ];
    }}
🎜🎜 Weitere Methoden werden nach und nach hinzugefügt, sagen Sie es mir bitte und ich werde sie in Sekunden aktualisieren!!!🎜🎜Verwandte Empfehlungen: 🎜Die neuesten 10 Thinkphp-Video-Tutorials🎜 🎜🎜

Das obige ist der detaillierte Inhalt vonVorstellung eines nützlichen ThinkPHP Repository-Pakets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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