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

首頁 php框架 YII yii2怎麼查詢數(shù)據(jù)

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

Dec 09, 2019 pm 02:17 PM
yii2 數(shù)據(jù) 查詢

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

#資料查詢

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ù), 迭代查詢

多表查詢:##

/* 多表聯(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 方法也可以查詢資料表的關(guān)聯(lián)資料(如,選出表A的資料可以拉出表B的關(guān)聯(lián)資料)。有了 AR, 傳回的關(guān)聯(lián)資料連線就像連接關(guān)聯(lián)主表的 AR 物件的屬性一樣。

建立關(guān)聯(lián)關(guān)係後,透過 $customer->orders 可以取得 一個 Order 物件的陣列,該陣列代表目前客戶物件的訂單集。

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

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

以上使用了[[yii\db\ActiveRecord::hasMany()]] 和 [[yii\db\ActiveRecord::hasOne()]]方法。以上兩例分別是關(guān)聯(lián)資料多對一關(guān)係和一對一關(guān)係的建模範(fàn)例。如,一個客戶有很多訂單,一個訂單只歸屬一個客戶。兩個方法都有兩個參數(shù)並傳回[[yii\db\ActiveQuery]]物件。

建立關(guān)聯(lián)關(guān)係後,取得關(guān)聯(lián)資料和取得元件屬性一樣簡單, 執(zhí)行以下對應(yīng)getter方法即可:

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

以上程式碼實(shí)際執(zhí)行了以下兩個SQL 語句:

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

有時候需要在關(guān)聯(lián)查詢中傳遞參數(shù),如不需要返回客戶全部訂單, 只需要返回購買金額超過設(shè)定值的大訂單, 透過以下getter方法宣告一個關(guān)聯(lián)資料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)聯(lián)式資料庫時,普遍要做的是連接多個資料表並明確運(yùn)用各種JOIN 查詢。 JOIN SQL語句的查詢條件和參數(shù),使用[[yii\db\ActiveQuery::joinWith()]] 可以重複使用已定義關(guān)係並呼叫而不是使用[[yii\db\ActiveQuery::join()]] 來實(shí)現(xiàn)目標(biāo)。

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

以上方法[[yii\db\ActiveQuery::innerJoinWith()|innerJoinWith()]]是存取INNER JOIN類型的[[yii\db\ActiveQuery::joinWith()

#|joinWith()]]的捷徑。

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

// 連接多重關(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();

程式碼背後, Yii 先執(zhí)行一 JOIN SQL 語句把滿足 JOIN SQL 語句查詢條件的主要模型查出, 然後為每個關(guān)係執(zhí)行一條查詢語句, bing填入對應(yīng)的關(guān)聯(lián)記錄。

[[yii\db\ActiveQuery::joinWith()|joinWith()]] 和[[yii\db\ActiveQuery::with()|with()]] 的差異在於前者連結(jié)主模型類別和關(guān)聯(lián)模型類別的資料表來檢索主模型, 而後者只查詢和檢索主模型類別。檢索主模型

由於這個差異,你可以套用只針對一條 JOIN SQL 語句起效的查詢條件。如,透過關(guān)聯(lián)模型的查詢條件過濾主模型,如前例, 可以使用關(guān)聯(lián)表的列來挑選主模型數(shù)據(jù),

當(dāng)使用[[yii\db\ActiveQuery::joinWith()|joinWith( )]] 方法時可以回應(yīng)沒有歧義的列名。 In the above examples, we useitem.id and order.id to disambiguate the id column references 因?yàn)橛唵伪砗晚椖勘矶及?id 欄位。

當(dāng)連線關(guān)聯(lián)關(guān)係時,關(guān)聯(lián)關(guān)係預(yù)設(shè)使用即時載入。你可以 透過傳參數(shù) $eagerLoading 來決定在指定關(guān)聯(lián)查詢中是否使用即時載入。

預(yù)設(shè) [[yii\db\ActiveQuery::joinWith()|joinWith()]] 使用左連線來連接關(guān)聯(lián)表。你也可以傳遞 $joinType 參數(shù)來客製化連線類型。你也可以使用 [[yii\db\ActiveQuery::innerJoinWith()|innerJoinWith()]]。

Yii2 分頁

控制器CommentController 裡面的任何一個方法,在這裡我的方法是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é),歡迎大家學(xué)習(xí)!

以上是yii2怎麼查詢數(shù)據(jù)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
使用ddrescue在Linux上恢復(fù)數(shù)據(jù) 使用ddrescue在Linux上恢復(fù)數(shù)據(jù) Mar 20, 2024 pm 01:37 PM

DDREASE是一種用於從檔案或區(qū)塊裝置(如硬碟、SSD、RAM磁碟、CD、DVD和USB儲存裝置)復(fù)原資料的工具。它將資料從一個區(qū)塊設(shè)備複製到另一個區(qū)塊設(shè)備,留下?lián)p壞的資料區(qū)塊,只移動好的資料區(qū)塊。 ddreasue是一種強(qiáng)大的恢復(fù)工具,完全自動化,因?yàn)樗诨謴?fù)操作期間不需要任何干擾。此外,由於有了ddasue地圖文件,它可以隨時停止和恢復(fù)。 DDREASE的其他主要功能如下:它不會覆寫恢復(fù)的數(shù)據(jù),但會在迭代恢復(fù)的情況下填補(bǔ)空白。但是,如果指示工具明確執(zhí)行此操作,則可以將其截斷。將資料從多個檔案或區(qū)塊還原到單

開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! 開源!超越ZoeDepth! DepthFM:快速且精確的單目深度估計! Apr 03, 2024 pm 12:04 PM

0.這篇文章乾了啥?提出了DepthFM:一個多功能且快速的最先進(jìn)的生成式單目深度估計模型。除了傳統(tǒng)的深度估計任務(wù)外,DepthFM還展示了在深度修復(fù)等下游任務(wù)中的最先進(jìn)能力。 DepthFM效率高,可以在少數(shù)推理步驟內(nèi)合成深度圖。以下一起來閱讀這項工作~1.論文資訊標(biāo)題:DepthFM:FastMonocularDepthEstimationwithFlowMatching作者:MingGui,JohannesS.Fischer,UlrichPrestel,PingchuanMa,Dmytr

iPhone上的蜂窩數(shù)據(jù)網(wǎng)路速度慢:修復(fù) iPhone上的蜂窩數(shù)據(jù)網(wǎng)路速度慢:修復(fù) May 03, 2024 pm 09:01 PM

在iPhone上面臨滯後,緩慢的行動數(shù)據(jù)連線?通常,手機(jī)上蜂窩互聯(lián)網(wǎng)的強(qiáng)度取決於幾個因素,例如區(qū)域、蜂窩網(wǎng)絡(luò)類型、漫遊類型等。您可以採取一些措施來獲得更快、更可靠的蜂窩網(wǎng)路連線。修復(fù)1–強(qiáng)制重啟iPhone有時,強(qiáng)制重啟設(shè)備只會重置許多內(nèi)容,包括蜂窩網(wǎng)路連線。步驟1–只需按一次音量調(diào)高鍵並放開即可。接下來,按降低音量鍵並再次釋放它。步驟2–過程的下一部分是按住右側(cè)的按鈕。讓iPhone完成重啟。啟用蜂窩數(shù)據(jù)並檢查網(wǎng)路速度。再次檢查修復(fù)2–更改資料模式雖然5G提供了更好的網(wǎng)路速度,但在訊號較弱

Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓(xùn)練最快選擇 Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓(xùn)練最快選擇 Apr 01, 2024 pm 07:46 PM

谷歌力推的JAX在最近的基準(zhǔn)測試中表現(xiàn)已經(jīng)超過Pytorch和TensorFlow,7項指標(biāo)排名第一。而且測試並不是JAX性能表現(xiàn)最好的TPU上完成的。雖然現(xiàn)在在開發(fā)者中,Pytorch依然比Tensorflow更受歡迎。但未來,也許有更多的大型模型會基於JAX平臺進(jìn)行訓(xùn)練和運(yùn)行。模型最近,Keras團(tuán)隊為三個後端(TensorFlow、JAX、PyTorch)與原生PyTorch實(shí)作以及搭配TensorFlow的Keras2進(jìn)行了基準(zhǔn)測試。首先,他們?yōu)樯墒胶头巧墒饺斯ぶ腔廴蝿?wù)選擇了一組主流

特斯拉機(jī)器人進(jìn)廠打工,馬斯克:手的自由度今年將達(dá)到22個! 特斯拉機(jī)器人進(jìn)廠打工,馬斯克:手的自由度今年將達(dá)到22個! May 06, 2024 pm 04:13 PM

特斯拉機(jī)器人Optimus最新影片出爐,已經(jīng)可以在工廠裡打工了。正常速度下,它分揀電池(特斯拉的4680電池)是這樣的:官方還放出了20倍速下的樣子——在小小的「工位」上,揀啊揀啊揀:這次放出的影片亮點(diǎn)之一在於Optimus在廠子裡完成這項工作,是完全自主的,全程沒有人為的干預(yù)。而且在Optimus的視角之下,它還可以把放歪了的電池重新?lián)炱饋矸胖茫鞔蛞粋€自動糾錯:對於Optimus的手,英偉達(dá)科學(xué)家JimFan給出了高度的評價:Optimus的手是全球五指機(jī)器人裡最靈巧的之一。它的手不僅有觸覺

美國空軍高調(diào)展示首個AI戰(zhàn)鬥機(jī)!部長親自試駕全程未乾預(yù),10萬行代碼試飛21次 美國空軍高調(diào)展示首個AI戰(zhàn)鬥機(jī)!部長親自試駕全程未乾預(yù),10萬行代碼試飛21次 May 07, 2024 pm 05:00 PM

最近,軍事圈被這個消息刷屏了:美軍的戰(zhàn)鬥機(jī),已經(jīng)能由AI完成全自動空戰(zhàn)了。是的,就在最近,美軍的AI戰(zhàn)鬥機(jī)首次公開,揭開了神秘面紗。這架戰(zhàn)鬥機(jī)的全名是可變穩(wěn)定性飛行模擬器測試飛機(jī)(VISTA),由美空軍部長親自搭乘,模擬了一對一的空戰(zhàn)。 5月2日,美國空軍部長FrankKendall在Edwards空軍基地駕駛X-62AVISTA升空注意,在一小時的飛行中,所有飛行動作都由AI自主完成! Kendall表示——在過去的幾十年中,我們一直在思考自主空對空作戰(zhàn)的無限潛力,但它始終顯得遙不可及。然而如今,

超級智能體生命力覺醒!可自我更新的AI來了,媽媽再也不用擔(dān)心資料瓶頸難題 超級智能體生命力覺醒!可自我更新的AI來了,媽媽再也不用擔(dān)心資料瓶頸難題 Apr 29, 2024 pm 06:55 PM

哭死啊,全球狂煉大模型,一網(wǎng)路的資料不夠用,根本不夠用。訓(xùn)練模型搞得跟《飢餓遊戲》似的,全球AI研究者,都在苦惱怎麼才能餵飽這群資料大胃王。尤其在多模態(tài)任務(wù)中,這問題尤其突出。一籌莫展之際,來自人大系的初創(chuàng)團(tuán)隊,用自家的新模型,率先在國內(nèi)把「模型生成數(shù)據(jù)自己餵自己」變成了現(xiàn)實(shí)。而且還是理解側(cè)和生成側(cè)雙管齊下,兩側(cè)都能產(chǎn)生高品質(zhì)、多模態(tài)的新數(shù)據(jù),對模型本身進(jìn)行數(shù)據(jù)反哺。模型是啥?中關(guān)村論壇上剛露面的多模態(tài)大模型Awaker1.0。團(tuán)隊是誰?智子引擎。由人大高瓴人工智慧學(xué)院博士生高一鑷創(chuàng)立,高

12306怎麼查詢歷史購票紀(jì)錄 查看歷史購票紀(jì)錄的方法 12306怎麼查詢歷史購票紀(jì)錄 查看歷史購票紀(jì)錄的方法 Mar 28, 2024 pm 03:11 PM

12306訂票app下載最新版是一款大家非常滿意的出行購票軟體,想去哪裡就去那裡非常方便,軟體內(nèi)提供的票源非常多,只需要通過實(shí)名認(rèn)證就能在線購票,所有用戶的出行車票機(jī)票都可以輕鬆買到,享受不同的優(yōu)惠折扣。還能提前開啟預(yù)約搶票,預(yù)約飯店、專車接送都是可以的,有了它想去哪裡就去那裡一鍵購票,出行更加簡單方便,讓大家的出行體驗(yàn)更舒服,現(xiàn)在小編在線詳細(xì)為12306用戶帶來查看歷史購票記錄的方法?! ?.打開鐵路12306,點(diǎn)擊右下角我的,點(diǎn)擊我的訂單  2.在訂單頁面點(diǎn)擊已支付?! ?.在已支付頁

See all articles