yii2 資料提供者 dataProvider

2022-03-30 13:24:15 字數 1996 閱讀 1398

資料提供者 dataprovider

如何來取得資料

'pagination' => ['pagesize'=>5], //

pagination 用於分頁

'sort' => [ //

sort 用於排序

'defaultorder' =>[

'id' => sort_desc, //

defaultorder 指定預設排序字段

],'attributes' => ['id','title'], //

attribute 指定那幾個字段可以用來排序

如果需要列印原生sql,使用如下方法:

echo

$query ->createcommand()->getrawsql();

$dataprovider->query->each() //

獲取 $dataprovider 所有記錄;

$dataprovider->getmodels() //

獲取當前頁的資料,以陣列的方式返回

由於 $dataprovider->getmodels() 獲取的資料是當前頁的,如果在匯出的時候需要匯出所有記錄而不是當前頁,且又使用的是 sqldataprovider ,那麼就可以在控制器檔案中在重新設定一下分頁,將值設定的特別大,就可以模擬為不分頁了。

use

yii\db\pagination;

$dataprovider->setpagination(new

pagination([

'defaultpagesize' => 10000,

'pagesizelimit' => [1, 10000]

]));

二、yii的資料提供者類都包含:

如果需要使用 union 聯合多張表查詢,且查詢中還可能包含 關聯查詢(join)的時候,使用 sqldataprovider 來實現如下:

<?php 

namespace organize\models;

useyii;

useyii\base\model;

usestandard\models\country;

useorganize\models\user;

useyii\db\expression;

useyii\data\sqldataprovider;

class countrysearch extends

country

/*** @inheritdoc

*/public

function

scenarios()

/***

* @param array $params

** @return sqldataprovider

*/public

function search($params

)

//echo $query->createcommand()->getrawsql();

return

$dataprovider

; }}//

最後的 $dataprovider 渲染到頁面後,用 arrayhelper() 即可獲取對應的值

關於 $dataprovider 更詳細的內容,請參考官網:

yii2 0 資料提供者

資料提供者是乙個實現了 yii data dataproviderinte ce 介面的類。它主要用於獲取分頁和資料排序。它經常用在 data widgets 小物件裡,方便終端使用者進行分頁與資料排序。下面的資料提供者類都包含在yii的發布版本裡面 yii data activedataprovi...

內容提供者,更新資料庫

day5,不全 1 建立內容提供者並在清單檔案中設定,對資料庫的插入,刪除進行觀察 provider public class extends contentprovider override public uri insert uri uri,contentvalues values else r...

yii2資料庫遷移

yii migrate create create test table 建立乙個資料庫遷移 yii migrate 提交所有的遷移 yii migrate m160623 034801 create test table 指定類名,提交乙個遷移 yii migrate down 還原最近一次遷移 ...