Datenabfrage
User::find()->all(); 此方法返回所有數(shù)據(jù); User::findOne($id); 此方法返回 主鍵 id=1 的一條數(shù)據(jù)(舉個例子); User::find()->where(['name' => '小伙兒'])->one(); 此方法返回 ['name' => '小伙兒'] 的一條數(shù)據(jù); User::find()->where(['name' => '小伙兒'])->all(); 此方法返回 ['name' => '小伙兒'] 的所有數(shù)據(jù); User::find()->orderBy('id DESC')->all(); 此方法是排序查詢; User::findBySql('SELECT * FROM user')->all(); 此方法是用 sql 語句查詢 user 表里面的所有數(shù)據(jù); User::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 語句查詢 user 表里面的一條數(shù)據(jù); User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); 統(tǒng)計符合條件的總條數(shù); User::find()->one(); 此方法返回一條數(shù)據(jù); User::find()->all(); 此方法返回所有數(shù)據(jù); User::find()->count(); 此方法返回記錄的數(shù)量; User::find()->average(); 此方法返回指定列的平均值; User::find()->min(); 此方法返回指定列的最小值 ; User::find()->max(); 此方法返回指定列的最大值 ; User::find()->scalar(); 此方法返回值的第一行第一列的查詢結(jié)果; User::find()->column(); 此方法返回查詢結(jié)果中的第一列的值; User::find()->exists(); 此方法返回一個值指示是否包含查詢結(jié)果的數(shù)據(jù)行; User::find()->batch(10); 每次取 10 條數(shù)據(jù) User::find()->each(10); 每次取 10 條數(shù)據(jù), 迭代查詢
Mehrtabellenabfrage:
/* 多表聯(lián)查 */ $model=new Customer(); $model->fiind()->join(‘LEFT JOIN‘,‘student‘,‘student.cid=customer.id‘) ->where(‘student.id‘=>\Yii::$app->user->id) ->andwhere(‘is_ok=1‘) ->one()
Verwandte Abfrage
Sie k?nnen die Datentabelle auch mit abfragen die AR-Methode Verwandte Daten (z. B. k?nnen durch Auswahl von Daten aus Tabelle A verwandte Daten aus Tabelle B abgerufen werden). Bei AR entspricht die zurückgegebene Verknüpfung verknüpfter Daten genau der Verknüpfung der Eigenschaften des AR-Objekts mit der zugeh?rigen Haupttabelle.
Nach dem Herstellen der Zuordnung k?nnen Sie über $customer->orders ein Array von Bestellobjekten erhalten, das den Bestellsatz des aktuellen Kundenobjekts darstellt.
Definieren Sie die Zuordnung mithilfe einer Getter-Methode, die ein [[yiidbActiveQuery]]-Objekt zurückgibt. Das [[yiidbActiveQuery]]-Objekt verfügt über Informationen zum zugeh?rigen Kontext, sodass Sie nur die zugeh?rigen Daten abfragen k?nnen.
class Customer extends \yii\db\ActiveRecord { public function getOrders() { // 客戶和訂單通過 Order.customer_id -> id 關(guān)聯(lián)建立一對多關(guān)系 return $this->hasMany(Order::className(), ['customer_id' => 'id']); } } class Order extends \yii\db\ActiveRecord { // 訂單和客戶通過 Customer.id -> customer_id 關(guān)聯(lián)建立一對一關(guān)系 public function getCustomer() { return $this->hasOne(Customer::className(), ['id' => 'customer_id']); } }
Das Obige verwendet die Methoden [[yiidbActiveRecord::hasMany()]] und [[yiidbActiveRecord::hasOne()]]. Die beiden oben genannten Beispiele sind Modellierungsbeispiele für Viele-zu-Eins-Beziehungen bzw. Eins-zu-Eins-Beziehungen in zugeh?rigen Daten. Ein Kunde hat beispielsweise viele Bestellungen und eine Bestellung geh?rt nur einem Kunden. Beide Methoden haben zwei Parameter und geben [[yiidbActiveQuery]]-Objekte zurück.
Nach dem Herstellen einer Zuordnung ist das Abrufen zugeh?riger Daten so einfach wie das Abrufen von Komponentenattributen. Führen Sie einfach die folgenden entsprechenden Getter-Methoden aus:
// 取得客戶的訂單 $customer = Customer::findOne(1); $orders = $customer->orders; // $orders 是 Order 對象數(shù)組
Der obige Code führt tats?chlich die folgenden zwei SQL-Anweisungen aus:
SELECT * FROM customer WHERE id=1; SELECT * FROM order WHERE customer_id=1;
Manchmal ist es notwendig, Parameter in zugeh?rigen Abfragen zu übergeben. Wenn Sie nicht alle Bestellungen des Kunden zurücksenden müssen, müssen Sie nur gro?e Bestellungen zurücksenden, deren Kaufbetr?ge den festgelegten Wert überschreiten Folgende Getter-Methode:
class Customer extends \yii\db\ActiveRecord { public function getBigOrders($threshold = 100) { return $this->hasMany(Order::className(), ['customer_id' => 'id']) ->where('subtotal > :threshold', [':threshold' => $threshold]) ->orderBy('id'); } }
Union Query
Bei Verwendung einer relationalen Datenbank werden im Allgemeinen mehrere Tabellen verknüpft und verschiedene explizit angewendet JOIN-Abfragen. Verwenden Sie für die Abfragebedingungen und Parameter der JOIN-SQL-Anweisung [[yiidbActiveQuery::joinWith()]], um die definierte Beziehung und den Aufruf wiederzuverwenden, anstatt [[yiidbActiveQuery::join()]] zu verwenden, um das Ziel zu erreichen.
// 查找所有訂單并以客戶 ID 和訂單 ID 排序,并貪婪加載 "customer" 表 $orders = Order::find()->joinWith('customer')->orderBy('customer.id, order.id')->all(); // 查找包括書籍的所有訂單,并以 `INNER JOIN` 的連接方式即時加載 "books" 表 $orders = Order::find()->innerJoinWith('books')->all();
Die obige Methode [[yiidbActiveQuery::innerJoinWith()|innerJoinWith()]] dient dem Zugriff auf den INNER JOIN-Typ [[yiidbActiveQuery::joinWith()
|joinWith()] ]-Verknüpfung.
Sie k?nnen eine oder mehrere verwandte Beziehungen verbinden, Sie k?nnen Abfragebedingungen frei für verwandte Abfragen verwenden und Sie k?nnen auch verbundene verwandte Abfragen verschachteln. Beispiel:
// 連接多重關(guān)系 // 找出24小時內(nèi)注冊客戶包含書籍的訂單 $orders = Order::find()->innerJoinWith([ 'books', 'customer' => function ($query) { $query->where('customer.created_at > ' . (time() - 24 * 3600)); } ])->all(); // 連接嵌套關(guān)系:連接 books 表及其 author 列 $orders = Order::find()->joinWith('books.author')->all();
Hinter dem Code führt Yii zun?chst eine JOIN-SQL-Anweisung aus, um die Hauptmodelle herauszufinden, die die Abfragebedingungen der JOIN-SQL-Anweisung erfüllen, führt dann eine Abfrageanweisung für jede Beziehung aus und führt Bing-Füllungen durch in den entsprechenden zugeh?rigen Datens?tzen.
Der Unterschied zwischen [[yiidbActiveQuery::joinWith()|joinWith()]] und [[yiidbActiveQuery::with()|with()]] besteht darin, dass ersteres die Datentabellen des Hauptmodells verbindet -Klasse und die zugeh?rige Modellklasse, um das Hauptmodell abzurufen, w?hrend letztere nur die Hauptmodellklassen abfragt und abruft. Rufen Sie das Hauptmodell ab
Aufgrund dieses Unterschieds k?nnen Sie Abfragebedingungen anwenden, die nur für eine JOIN-SQL-Anweisung funktionieren. Filtern Sie beispielsweise das Hauptmodell anhand der Abfragebedingungen des zugeh?rigen Modells. Wie im vorherigen Beispiel k?nnen Sie die Spalten der zugeh?rigen Tabelle verwenden, um die Hauptmodelldaten auszuw?hlen.
Bei Verwendung von [[yiidbActiveQuery Die Methode ::joinWith()|joinWith()]] kann auf eindeutige Spaltennamen reagieren. In den obigen Beispielen verwenden wiritem.id und order.id, um die ID-Spaltenverweise eindeutig zu machen, da sowohl die Bestelltabelle als auch die Artikeltabelle die ID-Spalte enthalten.
Beim Herstellen einer Verbindung zu einer Assoziation verwendet die Assoziation standardm??ig das sofortige Laden. Sie k?nnen entscheiden, ob Eager Loading in der angegebenen zugeh?rigen Abfrage verwendet werden soll, indem Sie den Parameter $eagerLoading übergeben.
Standardm??ig verwendet [[yiidbActiveQuery::joinWith()|joinWith()]] den linken Join, um verwandte Tabellen zu verbinden. Sie k?nnen auch den Parameter $joinType übergeben, um den Join-Typ anzupassen. Sie k?nnen auch [[yiidbActiveQuery::innerJoinWith()|innerJoinWith()]] verwenden.
Yii2-Paging
Jede Methode im CommentController, hier ist meine Methode actionComment();
use yii\data\Pagination; use app\models\Comment; public function actionComment(){ $data = Comment::find()->andWhere(['id' => '10']); $pages = new Pagination(['totalCount' =>$data->count(), 'pageSize' => '2']); $model = $data->offset($pages->offset)->limit($pages->limit)->all(); return $this->render('comment',[ 'model' => $model, 'pages' => $pages, ]); }
Code im Inneren anzeigen
<?php use yii\widgets\LinkPager; ?> foreach($model as $key=>$val) { 這里就是遍歷數(shù)據(jù) } <?= LinkPager::widget(['pagination' => $pages]); ?>
in() Operation
SELECT * FROM `categ_price` WHERE `id` IN (9, 11)
$categ_price_id=[9>1,11=>3] $categPriceModel= \common\models\CategPrice::find()->where(['id' =>array_keys($categ_price_id)])->all(); #>where(['id' => [1, 2, 3]])
nicht in()-Operation
SELECT * FROM `shop` WHERE (status=1) AND (`id` NOT IN (88, 93))
$shopModel= Shop::find()->where('status=1')->andWhere(['not in','id',[88,98]])->all();
Die chinesische PHP-Website hat eine gro?e Anzahl kostenloser Yii-Einführungs-Tutorials, jeder ist herzlich zum Lernen willkommen!
Das obige ist der detaillierte Inhalt vonSo fragen Sie Daten in yii2 ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DDREASE ist ein Tool zum Wiederherstellen von Daten von Datei- oder Blockger?ten wie Festplatten, SSDs, RAM-Disks, CDs, DVDs und USB-Speicherger?ten. Es kopiert Daten von einem Blockger?t auf ein anderes, wobei besch?digte Bl?cke zurückbleiben und nur gute Bl?cke verschoben werden. ddreasue ist ein leistungsstarkes Wiederherstellungstool, das vollst?ndig automatisiert ist, da es w?hrend der Wiederherstellungsvorg?nge keine Unterbrechungen erfordert. Darüber hinaus kann es dank der ddasue-Map-Datei jederzeit gestoppt und fortgesetzt werden. Weitere wichtige Funktionen von DDREASE sind: Es überschreibt die wiederhergestellten Daten nicht, füllt aber die Lücken im Falle einer iterativen Wiederherstellung. Es kann jedoch gekürzt werden, wenn das Tool explizit dazu aufgefordert wird. Stellen Sie Daten aus mehreren Dateien oder Bl?cken in einer einzigen wieder her

0.Was bewirkt dieser Artikel? Wir schlagen DepthFM vor: ein vielseitiges und schnelles generatives monokulares Tiefensch?tzungsmodell auf dem neuesten Stand der Technik. Zus?tzlich zu herk?mmlichen Tiefensch?tzungsaufgaben demonstriert DepthFM auch hochmoderne F?higkeiten bei nachgelagerten Aufgaben wie dem Tiefen-Inpainting. DepthFM ist effizient und kann Tiefenkarten innerhalb weniger Inferenzschritte synthetisieren. Lassen Sie uns diese Arbeit gemeinsam lesen ~ 1. Titel der Papierinformationen: DepthFM: FastMonocularDepthEstimationwithFlowMatching Autor: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Stehen Sie vor einer Verz?gerung oder einer langsamen mobilen Datenverbindung auf dem iPhone? Normalerweise h?ngt die St?rke des Mobilfunk-Internets auf Ihrem Telefon von mehreren Faktoren ab, wie z. B. der Region, dem Mobilfunknetztyp, dem Roaming-Typ usw. Es gibt einige Dinge, die Sie tun k?nnen, um eine schnellere und zuverl?ssigere Mobilfunk-Internetverbindung zu erhalten. Fix 1 – Neustart des iPhone erzwingen Manchmal werden durch einen erzwungenen Neustart Ihres Ger?ts viele Dinge zurückgesetzt, einschlie?lich der Mobilfunkverbindung. Schritt 1 – Drücken Sie einfach einmal die Lauter-Taste und lassen Sie sie los. Drücken Sie anschlie?end die Leiser-Taste und lassen Sie sie wieder los. Schritt 2 – Der n?chste Teil des Prozesses besteht darin, die Taste auf der rechten Seite gedrückt zu halten. Lassen Sie das iPhone den Neustart abschlie?en. Aktivieren Sie Mobilfunkdaten und überprüfen Sie die Netzwerkgeschwindigkeit. überprüfen Sie es erneut. Fix 2 – Datenmodus ?ndern 5G bietet zwar bessere Netzwerkgeschwindigkeiten, funktioniert jedoch besser, wenn das Signal schw?cher ist

Die von Google gef?rderte Leistung von JAX hat in jüngsten Benchmark-Tests die von Pytorch und TensorFlow übertroffen und belegt bei 7 Indikatoren den ersten Platz. Und der Test wurde nicht auf der TPU mit der besten JAX-Leistung durchgeführt. Obwohl unter Entwicklern Pytorch immer noch beliebter ist als Tensorflow. Aber in Zukunft werden m?glicherweise mehr gro?e Modelle auf Basis der JAX-Plattform trainiert und ausgeführt. Modelle Kürzlich hat das Keras-Team drei Backends (TensorFlow, JAX, PyTorch) mit der nativen PyTorch-Implementierung und Keras2 mit TensorFlow verglichen. Zun?chst w?hlen sie eine Reihe von Mainstream-Inhalten aus

Das neueste Video von Teslas Roboter Optimus ist ver?ffentlicht und er kann bereits in der Fabrik arbeiten. Bei normaler Geschwindigkeit sortiert es Batterien (Teslas 4680-Batterien) so: Der Beamte hat auch ver?ffentlicht, wie es bei 20-facher Geschwindigkeit aussieht – auf einer kleinen ?Workstation“, pflücken und pflücken und pflücken: Dieses Mal wird es freigegeben. Eines der Highlights Der Vorteil des Videos besteht darin, dass Optimus diese Arbeit in der Fabrik v?llig autonom und ohne menschliches Eingreifen w?hrend des gesamten Prozesses erledigt. Und aus Sicht von Optimus kann es auch die krumme Batterie aufnehmen und platzieren, wobei der Schwerpunkt auf der automatischen Fehlerkorrektur liegt: In Bezug auf die Hand von Optimus gab der NVIDIA-Wissenschaftler Jim Fan eine hohe Bewertung ab: Die Hand von Optimus ist der fünffingrige Roboter der Welt am geschicktesten. Seine H?nde sind nicht nur taktil

Kürzlich wurde die Milit?rwelt von der Nachricht überw?ltigt: US-Milit?rkampfflugzeuge k?nnen jetzt mithilfe von KI vollautomatische Luftk?mpfe absolvieren. Ja, erst kürzlich wurde der KI-Kampfjet des US-Milit?rs zum ersten Mal der ?ffentlichkeit zug?nglich gemacht und sein Geheimnis gelüftet. Der vollst?ndige Name dieses J?gers lautet ?Variable Stability Simulator Test Aircraft“ (VISTA). Er wurde vom Minister der US-Luftwaffe pers?nlich geflogen, um einen Eins-gegen-eins-Luftkampf zu simulieren. Am 2. Mai startete US-Luftwaffenminister Frank Kendall mit einer X-62AVISTA auf der Edwards Air Force Base. Beachten Sie, dass w?hrend des einstündigen Fluges alle Flugaktionen autonom von der KI durchgeführt wurden! Kendall sagte: ?In den letzten Jahrzehnten haben wir über das unbegrenzte Potenzial des autonomen Luft-Luft-Kampfes nachgedacht, aber es schien immer unerreichbar.“ Nun jedoch,

Ich weine zu Tode. Die Daten im Internet reichen überhaupt nicht aus. Das Trainingsmodell sieht aus wie ?Die Tribute von Panem“, und KI-Forscher auf der ganzen Welt machen sich Gedanken darüber, wie sie diese datenhungrigen Esser ern?hren sollen. Dieses Problem tritt insbesondere bei multimodalen Aufgaben auf. Zu einer Zeit, als sie ratlos waren, nutzte ein Start-up-Team der Abteilung der Renmin-Universit?t von China sein eigenes neues Modell, um als erstes in China einen ?modellgenerierten Datenfeed selbst“ in die Realit?t umzusetzen. Darüber hinaus handelt es sich um einen zweigleisigen Ansatz auf der Verst?ndnisseite und der Generierungsseite. Beide Seiten k?nnen hochwertige, multimodale neue Daten generieren und Datenrückmeldungen an das Modell selbst liefern. Was ist ein Modell? Awaker 1.0, ein gro?es multimodales Modell, das gerade im Zhongguancun-Forum erschienen ist. Wer ist das Team? Sophon-Motor. Gegründet von Gao Yizhao, einem Doktoranden an der Hillhouse School of Artificial Intelligence der Renmin University.

Laden Sie die neueste Version der Ticketbuchungs-App 12306 herunter, mit der jeder sehr zufrieden ist. Es gibt viele Ticketquellen, die in der Software bereitgestellt werden -Namenauthentifizierung zum Online-Kauf von Tickets. Alle Benutzer k?nnen ganz einfach Reisetickets und Flugtickets kaufen und verschiedene Erm??igungen genie?en. Sie k?nnen auch im Voraus mit der Buchung beginnen, um Tickets zu erhalten. Damit k?nnen Sie mit einem Klick dorthin fahren, wo Sie m?chten, und so das Reisen einfacher und bequemer gestalten Noch komfortabler: Der Herausgeber stellt die Details jetzt online dar. Bietet 12306 Benutzern die M?glichkeit, historische Ticketkaufaufzeichnungen einzusehen. 1. ?ffnen Sie Railway 12306, klicken Sie unten rechts auf ?Mein“ und dann auf ?Meine Bestellung“. 2. Klicken Sie auf der Bestellseite auf ?Bezahlt“. 3. Auf der kostenpflichtigen Seite
