Yii2 不應該在GridView的columns裡邊查詢把id轉換成名稱呢?

WBOY
發布: 2016-08-18 09:15:44
原創
954 人瀏覽過

1、Yii2 ActiveDataProvider自帶的分頁功能,在列表使用ActiveDataProvider的時候是不需要將查詢查出結果來的,平時為了方便就直接在GridView的columns裡邊查詢把id轉換成名稱,但是這樣的做法在查看debug的時候會出現同一語句多次執行,影響效率。從Yii2的使用規範來講這是不是不對?
2、如果不在GridView的columns裡邊查詢把id轉換成名稱的話,又該如何處理呢?在傳到GridView前使用多表關聯查詢把id轉換成名稱的做法可好?

回覆內容:

1、Yii2 ActiveDataProvider自帶的分頁功能,在列表使用ActiveDataProvider的時候是不需要將查詢查出結果來的,平時為了方便就直接在GridView的columns裡邊查詢把id轉換成名稱,但是這樣的做法在查看debug的時候會出現同一語句多次執行,影響效率。從Yii2的使用規範來講這是不是不對?
2、如果不在GridView的columns裡邊查詢把id轉換成名稱的話,又該如何處理呢?在傳到GridView前使用多表關聯查詢把id轉換成名稱的做法可好?

兩種手段結合:

  1. 在建構ActiveDataProvider時,加入with(),例如:

    <code>$query->with(['store'])->where(['name' => $something]);
    </code>
    登入後複製

這樣在結果集會帶上store表的內容,不必重複查詢,這應該是標準做法;

  1. 實在規避不開的,啟用memcache,把結果預先保存在記憶體裡,也可以有效地減少資料庫壓力。

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!