all();返回主鍵id=1的一條數(shù)據(jù):User::findOne($id);排序查詢:User::find()->orderBy('id DESC')->all(),等等。" />

国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah rangka kerja php YII yii2怎么查詢數(shù)據(jù)

yii2怎么查詢數(shù)據(jù)

Dec 09, 2019 pm 02:17 PM
yii2 data Pertanyaan

yii2怎么查詢數(shù)據(jù)

數(shù)據(jù)查詢

User::find()->all();    此方法返回所有數(shù)據(jù);
User::findOne($id);   此方法返回 主鍵 id=1  的一條數(shù)據(jù)(舉個(gè)例子); 
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  語(yǔ)句查詢 user 表里面的所有數(shù)據(jù);
User::findBySql('SELECT * FROM user')->one();  此方法是用 sql  語(yǔ)句查詢 user 表里面的一條數(shù)據(jù);
User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id');   統(tǒng)計(jì)符合條件的總條數(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();    此方法返回一個(gè)值指示是否包含查詢結(jié)果的數(shù)據(jù)行;
User::find()->batch(10);  每次取 10 條數(shù)據(jù) 
User::find()->each(10);  每次取 10 條數(shù)據(jù), 迭代查詢

多表查詢:

/* 多表聯(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()

關(guān)聯(lián)查詢

使用 AR 方法也可以查詢數(shù)據(jù)表的關(guān)聯(lián)數(shù)據(jù)(如,選出表A的數(shù)據(jù)可以拉出表B的關(guān)聯(lián)數(shù)據(jù))。 有了 AR, 返回的關(guān)聯(lián)數(shù)據(jù)連接就像連接關(guān)聯(lián)主表的 AR 對(duì)象的屬性一樣。

建立關(guān)聯(lián)關(guān)系后,通過(guò) $customer->orders 可以獲取 一個(gè) Order 對(duì)象的數(shù)組,該數(shù)組代表當(dāng)前客戶對(duì)象的訂單集。

定義關(guān)聯(lián)關(guān)系使用一個(gè)可以返回 [[yii\db\ActiveQuery]] 對(duì)象的 getter 方法, [[yii\db\ActiveQuery]]對(duì)象有關(guān)聯(lián)上下文的相關(guān)信息,因此可以只查詢關(guān)聯(lián)數(shù)據(jù)。

class Customer extends \yii\db\ActiveRecord
{
    public function getOrders()
    {
        // 客戶和訂單通過(guò) Order.customer_id -> id 關(guān)聯(lián)建立一對(duì)多關(guān)系
        return $this->hasMany(Order::className(), ['customer_id' => 'id']);
    }
}
 
class Order extends \yii\db\ActiveRecord
{
    // 訂單和客戶通過(guò) Customer.id -> customer_id 關(guān)聯(lián)建立一對(duì)一關(guān)系
    public function getCustomer()
    {
        return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
    }
}

以上使用了[[yii\db\ActiveRecord::hasMany()]] 和 [[yii\db\ActiveRecord::hasOne()]]方法。以上兩例分別是關(guān)聯(lián)數(shù)據(jù)多對(duì)一關(guān)系和一對(duì)一關(guān)系的建模范例。如,一個(gè)客戶有很多訂單,一個(gè)訂單只歸屬一個(gè)客戶。兩個(gè)方法都有兩個(gè)參數(shù)并返回[[yii\db\ActiveQuery]]對(duì)象。

建立關(guān)聯(lián)關(guān)系后,獲取關(guān)聯(lián)數(shù)據(jù)和獲取組件屬性一樣簡(jiǎn)單, 執(zhí)行以下相應(yīng)getter方法即可:

// 取得客戶的訂單
$customer = Customer::findOne(1);
$orders = $customer->orders; // $orders 是 Order 對(duì)象數(shù)組

以上代碼實(shí)際執(zhí)行了以下兩條 SQL 語(yǔ)句:

SELECT * FROM customer WHERE id=1;
SELECT * FROM order WHERE customer_id=1;

有時(shí)候需要在關(guān)聯(lián)查詢中傳遞參數(shù),如不需要返回客戶全部訂單, 只需要返回購(gòu)買金額超過(guò)設(shè)定值的大訂單, 通過(guò)以下getter方法聲明一個(gè)關(guān)聯(lián)數(shù)據(jù) bigOrders:

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');
    }
}

聯(lián)合查詢

使用關(guān)系數(shù)據(jù)庫(kù)時(shí),普遍要做的是連接多個(gè)表并明確地運(yùn)用各種 JOIN 查詢。 JOIN SQL語(yǔ)句的查詢條件和參數(shù),使用 [[yii\db\ActiveQuery::joinWith()]] 可以重用已定義關(guān)系并調(diào)用 而不是使用 [[yii\db\ActiveQuery::join()]] 來(lái)實(shí)現(xiàn)目標(biāo)。

// 查找所有訂單并以客戶 ID 和訂單 ID 排序,并貪婪加載 "customer" 表
$orders = Order::find()->joinWith('customer')->orderBy('customer.id, order.id')->all();
// 查找包括書籍的所有訂單,并以 `INNER JOIN` 的連接方式即時(shí)加載 "books" 表
$orders = Order::find()->innerJoinWith('books')->all();

以上方法[[yii\db\ActiveQuery::innerJoinWith()|innerJoinWith()]]是訪問(wèn)INNER JOIN類型的[[yii\db\ActiveQuery::joinWith()

|joinWith()]]的快捷方式。

可以連接一個(gè)或多個(gè)關(guān)聯(lián)關(guān)系,可以自由使用查詢條件到關(guān)聯(lián)查詢, 也可以嵌套連接關(guān)聯(lián)查詢。如:

// 連接多重關(guān)系
// 找出24小時(shí)內(nèi)注冊(cè)客戶包含書籍的訂單
$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();

代碼背后, Yii 先執(zhí)行一條 JOIN SQL 語(yǔ)句把滿足 JOIN SQL 語(yǔ)句查詢條件的主要模型查出, 然后為每個(gè)關(guān)系執(zhí)行一條查詢語(yǔ)句, bing填充相應(yīng)的關(guān)聯(lián)記錄。

[[yii\db\ActiveQuery::joinWith()|joinWith()]] 和 [[yii\db\ActiveQuery::with()|with()]] 的區(qū)別是 前者連接主模型類和關(guān)聯(lián)模型類的數(shù)據(jù)表來(lái)檢索主模型, 而后者只查詢和檢索主模型類。 檢索主模型

由于這個(gè)區(qū)別,你可以應(yīng)用只針對(duì)一條 JOIN SQL 語(yǔ)句起效的查詢條件。 如,通過(guò)關(guān)聯(lián)模型的查詢條件過(guò)濾主模型,如前例, 可以使用關(guān)聯(lián)表的列來(lái)挑選主模型數(shù)據(jù),

當(dāng)使用 [[yii\db\ActiveQuery::joinWith()|joinWith()]] 方法時(shí)可以響應(yīng)沒(méi)有歧義的列名。 In the above examples, we useitem.id and order.id to disambiguate the id column references 因?yàn)橛唵伪砗晚?xiàng)目表都包括 id 列。

當(dāng)連接關(guān)聯(lián)關(guān)系時(shí),關(guān)聯(lián)關(guān)系默認(rèn)使用即時(shí)加載。你可以 通過(guò)傳參數(shù) $eagerLoading 來(lái)決定在指定關(guān)聯(lián)查詢中是否使用即時(shí)加載。

默認(rèn) [[yii\db\ActiveQuery::joinWith()|joinWith()]] 使用左連接來(lái)連接關(guān)聯(lián)表。 你也可以傳 $joinType 參數(shù)來(lái)定制連接類型。 你也可以使用 [[yii\db\ActiveQuery::innerJoinWith()|innerJoinWith()]]。

Yii2 分頁(yè)

控制器 CommentController 里面的任意一個(gè)方法,在這里我的方法是 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,
       ]);
  }

view 里面的代碼

<?php
use yii\widgets\LinkPager;
?>
      foreach($model as $key=>$val)
      {
           這里就是遍歷數(shù)據(jù)
      }
      <?= LinkPager::widget([&#39;pagination&#39; => $pages]); ?>

in() 操作

SELECT * FROM `categ_price` WHERE `id` IN (9, 11)

$categ_price_id=[9>1,11=>3]
  $categPriceModel= \common\models\CategPrice::find()->where([&#39;id&#39; =>array_keys($categ_price_id)])->all();
  #>where([&#39;id&#39; => [1, 2, 3]])

not in() 操作

SELECT * FROM `shop` WHERE (status=1) AND (`id` NOT IN (88, 93))

$shopModel= Shop::find()->where(&#39;status=1&#39;)->andWhere([&#39;not in&#39;,&#39;id&#39;,[88,98]])->all();

PHP中文網(wǎng),有大量免費(fèi)的Yii入門教程,歡迎大家學(xué)習(xí)!

Atas ialah kandungan terperinci yii2怎么查詢數(shù)據(jù). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
Gunakan ddrescue untuk memulihkan data pada Linux Gunakan ddrescue untuk memulihkan data pada Linux Mar 20, 2024 pm 01:37 PM

DDREASE ialah alat untuk memulihkan data daripada fail atau peranti sekat seperti cakera keras, SSD, cakera RAM, CD, DVD dan peranti storan USB. Ia menyalin data dari satu peranti blok ke peranti lain, meninggalkan blok data yang rosak dan hanya memindahkan blok data yang baik. ddreasue ialah alat pemulihan yang berkuasa yang automatik sepenuhnya kerana ia tidak memerlukan sebarang gangguan semasa operasi pemulihan. Selain itu, terima kasih kepada fail peta ddasue, ia boleh dihentikan dan disambung semula pada bila-bila masa. Ciri-ciri utama lain DDREASE adalah seperti berikut: Ia tidak menimpa data yang dipulihkan tetapi mengisi jurang sekiranya pemulihan berulang. Walau bagaimanapun, ia boleh dipotong jika alat itu diarahkan untuk melakukannya secara eksplisit. Pulihkan data daripada berbilang fail atau blok kepada satu

Sumber terbuka! Di luar ZoeDepth! DepthFM: Anggaran kedalaman monokular yang cepat dan tepat! Sumber terbuka! Di luar ZoeDepth! DepthFM: Anggaran kedalaman monokular yang cepat dan tepat! Apr 03, 2024 pm 12:04 PM

0. Apakah fungsi artikel ini? Kami mencadangkan DepthFM: model anggaran kedalaman monokular generatif yang serba boleh dan pantas. Sebagai tambahan kepada tugas anggaran kedalaman tradisional, DepthFM juga menunjukkan keupayaan terkini dalam tugas hiliran seperti mengecat kedalaman. DepthFM cekap dan boleh mensintesis peta kedalaman dalam beberapa langkah inferens. Mari kita baca karya ini bersama-sama ~ 1. Tajuk maklumat kertas: DepthFM: FastMonocularDepthEstimationwithFlowMatching Pengarang: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Kelajuan Internet Data Selular Perlahan pada iPhone: Pembetulan Kelajuan Internet Data Selular Perlahan pada iPhone: Pembetulan May 03, 2024 pm 09:01 PM

Menghadapi ketinggalan, sambungan data mudah alih perlahan pada iPhone? Biasanya, kekuatan internet selular pada telefon anda bergantung pada beberapa faktor seperti rantau, jenis rangkaian selular, jenis perayauan, dsb. Terdapat beberapa perkara yang boleh anda lakukan untuk mendapatkan sambungan Internet selular yang lebih pantas dan boleh dipercayai. Betulkan 1 – Paksa Mulakan Semula iPhone Kadangkala, paksa memulakan semula peranti anda hanya menetapkan semula banyak perkara, termasuk sambungan selular. Langkah 1 – Hanya tekan kekunci naikkan kelantangan sekali dan lepaskan. Seterusnya, tekan kekunci Turun Kelantangan dan lepaskannya semula. Langkah 2 - Bahagian seterusnya proses adalah untuk menahan butang di sebelah kanan. Biarkan iPhone selesai dimulakan semula. Dayakan data selular dan semak kelajuan rangkaian. Semak semula Betulkan 2 – Tukar mod data Walaupun 5G menawarkan kelajuan rangkaian yang lebih baik, ia berfungsi lebih baik apabila isyarat lemah

Google gembira: prestasi JAX mengatasi Pytorch dan TensorFlow! Ia mungkin menjadi pilihan terpantas untuk latihan inferens GPU Google gembira: prestasi JAX mengatasi Pytorch dan TensorFlow! Ia mungkin menjadi pilihan terpantas untuk latihan inferens GPU Apr 01, 2024 pm 07:46 PM

Prestasi JAX, yang dipromosikan oleh Google, telah mengatasi Pytorch dan TensorFlow dalam ujian penanda aras baru-baru ini, menduduki tempat pertama dalam 7 penunjuk. Dan ujian tidak dilakukan pada TPU dengan prestasi JAX terbaik. Walaupun dalam kalangan pembangun, Pytorch masih lebih popular daripada Tensorflow. Tetapi pada masa hadapan, mungkin lebih banyak model besar akan dilatih dan dijalankan berdasarkan platform JAX. Model Baru-baru ini, pasukan Keras menanda aras tiga hujung belakang (TensorFlow, JAX, PyTorch) dengan pelaksanaan PyTorch asli dan Keras2 dengan TensorFlow. Pertama, mereka memilih satu set arus perdana

Robot Tesla bekerja di kilang, Musk: Tahap kebebasan tangan akan mencapai 22 tahun ini! Robot Tesla bekerja di kilang, Musk: Tahap kebebasan tangan akan mencapai 22 tahun ini! May 06, 2024 pm 04:13 PM

Video terbaru robot Tesla Optimus dikeluarkan, dan ia sudah boleh berfungsi di kilang. Pada kelajuan biasa, ia mengisih bateri (bateri 4680 Tesla) seperti ini: Pegawai itu juga mengeluarkan rupanya pada kelajuan 20x - pada "stesen kerja" kecil, memilih dan memilih dan memilih: Kali ini ia dikeluarkan Salah satu sorotan video itu ialah Optimus menyelesaikan kerja ini di kilang, sepenuhnya secara autonomi, tanpa campur tangan manusia sepanjang proses. Dan dari perspektif Optimus, ia juga boleh mengambil dan meletakkan bateri yang bengkok, memfokuskan pada pembetulan ralat automatik: Berkenaan tangan Optimus, saintis NVIDIA Jim Fan memberikan penilaian yang tinggi: Tangan Optimus adalah robot lima jari di dunia paling cerdik. Tangannya bukan sahaja boleh disentuh

Tentera Udara A.S. mempamerkan jet pejuang AI pertamanya dengan profil tinggi! Menteri secara peribadi menjalankan pandu uji tanpa campur tangan semasa keseluruhan proses, dan 100,000 baris kod telah diuji selama 21 kali. Tentera Udara A.S. mempamerkan jet pejuang AI pertamanya dengan profil tinggi! Menteri secara peribadi menjalankan pandu uji tanpa campur tangan semasa keseluruhan proses, dan 100,000 baris kod telah diuji selama 21 kali. May 07, 2024 pm 05:00 PM

Baru-baru ini, bulatan tentera telah terharu dengan berita: jet pejuang tentera AS kini boleh melengkapkan pertempuran udara automatik sepenuhnya menggunakan AI. Ya, baru-baru ini, jet pejuang AI tentera AS telah didedahkan buat pertama kali, mendedahkan misterinya. Nama penuh pesawat pejuang ini ialah Variable Stability Simulator Test Aircraft (VISTA). Ia diterbangkan sendiri oleh Setiausaha Tentera Udara AS untuk mensimulasikan pertempuran udara satu lawan satu. Pada 2 Mei, Setiausaha Tentera Udara A.S. Frank Kendall berlepas menggunakan X-62AVISTA di Pangkalan Tentera Udara Edwards Ambil perhatian bahawa semasa penerbangan selama satu jam, semua tindakan penerbangan telah diselesaikan secara autonomi oleh AI! Kendall berkata - "Sejak beberapa dekad yang lalu, kami telah memikirkan tentang potensi tanpa had pertempuran udara-ke-udara autonomi, tetapi ia sentiasa kelihatan di luar jangkauan." Namun kini,

Daya hidup kecerdasan super membangkitkan! Tetapi dengan kedatangan AI yang mengemas kini sendiri, ibu tidak perlu lagi bimbang tentang kesesakan data Daya hidup kecerdasan super membangkitkan! Tetapi dengan kedatangan AI yang mengemas kini sendiri, ibu tidak perlu lagi bimbang tentang kesesakan data Apr 29, 2024 pm 06:55 PM

Saya menangis hingga mati. Dunia sedang membina model besar. Data di Internet tidak mencukupi. Model latihan kelihatan seperti "The Hunger Games", dan penyelidik AI di seluruh dunia bimbang tentang cara memberi makan data ini kepada pemakan yang rakus. Masalah ini amat ketara dalam tugas berbilang modal. Pada masa mereka mengalami kerugian, pasukan pemula dari Jabatan Universiti Renmin China menggunakan model baharu mereka sendiri untuk menjadi yang pertama di China untuk menjadikan "suapan data yang dijana model itu sendiri" menjadi kenyataan. Selain itu, ia merupakan pendekatan serampang dua mata dari segi pemahaman dan sisi penjanaan Kedua-dua pihak boleh menjana data baharu berbilang modal yang berkualiti tinggi dan memberikan maklum balas data kepada model itu sendiri. Apakah model? Awaker 1.0, model berbilang modal besar yang baru sahaja muncul di Forum Zhongguancun. Siapa pasukan itu? Enjin Sophon. Diasaskan oleh Gao Yizhao, pelajar kedoktoran di Sekolah Kecerdasan Buatan Hillhouse Universiti Renmin.

12306 Cara menyemak rekod pembelian tiket sejarah Cara menyemak rekod pembelian tiket sejarah 12306 Cara menyemak rekod pembelian tiket sejarah Cara menyemak rekod pembelian tiket sejarah Mar 28, 2024 pm 03:11 PM

Muat turun versi terbaharu aplikasi tempahan tiket 12306 Ia adalah perisian pembelian tiket perjalanan yang semua orang sangat berpuas hati dengannya -pengesahan nama untuk membeli tiket dalam talian Semua pengguna Anda boleh membeli tiket perjalanan dan tiket penerbangan dengan mudah dan menikmati diskaun yang berbeza. Anda juga boleh mula menempah tempahan terlebih dahulu untuk merebut tiket Anda boleh menempah hotel atau pemindahan kereta khas Dengan itu, anda boleh pergi ke mana-mana yang anda mahu pergi dan membeli tiket dengan satu klik lebih mudah dan memudahkan semua orang lebih selesa. Kini editor memperincikannya dalam talian Menyediakan 12306 pengguna cara untuk melihat rekod pembelian tiket sejarah. 1. Buka Keretapi 12306, klik Saya di sudut kanan bawah, dan klik Pesanan Saya 2. Klik Dibayar pada halaman pesanan. 3. Pada halaman berbayar

See all articles