YII2 0 常用查詢語句

2021-07-09 01:53:59 字數 1997 閱讀 4428

1.首先理解以下三個的返回型別:

find() 返回值是乙個activequery()物件

hasone() 與 hasmany() 返回值是 yii\db

\activequery instance

activedataprovider 返回的值是 yii\db

\activequery instance

2.下面詳細說一些常用的查詢:

2.1.查詢單條使用者記錄:

findone() 與 find

()->where()的區別

前者根據條件查詢一條記錄,後者根據條件查詢一條或多條記錄

前者的引數可以是主鍵,或鍵值對,後者引數必須是鍵值對。因此:

user::findone($id);

等價於 user::findone(['id'

=> $id]);

等價於 user::find()->where(['id' => $id])->one();

等價於 user::findbysql('select * from user')->one(); //這個查詢不完全等同於以上三個

2.2. 查詢單列資料

#查詢一列,返回物件陣列

user::find()->select('id')->all();

array(1)

#查詢一列,返回陣列

user::find()->select('id')->asarray()->all();

array(1)

}#查詢一列之和

user::find()->select('salary')->sum('salary');

2.3.查詢多列資料

/*query查詢*/

$query = (new \yii\db\query())

->select('id, name')

->from('user')

->limit(10);

/*activerecord查詢*/

user::find()->select('username,email')->one();

#返回結果是物件,如下:

object(common\models\user)#116 (8)

獲取資料為,$user->username, $user->email

2.4.查詢多條記錄:

/*返回所有記錄*/

user::find()->all();

/*查詢滿足條件 [單個條件,多個條件] 的多條記錄*/

user::find()->where(['***' => 'male'])->all();

/*統計查詢,在查詢後加count方法,統計查詢結果中的記錄數量*/

user::find()->count();

/*排序查詢,根據id查詢一條最新註冊的使用者記錄*/

user::find()->orderby(['id'

=> sort_desc, 'created_at'

=> sort_desc]);

2.5.關聯查詢

/*包含中間表的1:n查詢*/

public

function

getlectures

()/* 1:n 查詢*/

public

function

getteachs

()/* 1:1 查詢*/

public

function

getcategory

()

2.6.dataprovider查詢

public

function

getsupporters

()

Yii 2 0常用方法記錄

headers is an object of yii web headercollection returns the accept header value accept headers get accept if headers has user agent if session isacti...

yii 2 0 寫入日誌

首先,我們的 web.php 配置檔案中,更改於下 log tracelevel yii debug 3 0,targets class yii log filetarget levels error warning trace 在 levels 中,增加了 trace,使用如下 yii trace...

yii 2 0 寫入日誌

首先,我們的 web.php 配置檔案中,更改於下 log tracelevel yii debug 3 0,targets class yii log filetarget levels error warning trace 在 levels 中,增加了 trace,使用如下 yii trace...