28 - Уроки yii2. О запросах в цикле и cache

preview_player
Показать описание
Залогом любого оптимизированого приложения является отсутствие запросов к базе данных в циклах, использование связей моделей и кеширование данных с зависимостями для его обновления в нужный момент. В этом уроке мы рассмотрим несколько примеров таких ситуаций
Рекомендации по теме
Комментарии
Автор

Вы кешируете только 17к записей с условием "orders.id < 10000", а остальные отбрасываете?

inilim
Автор

Как в listview делать кнопки для сортировки по убыванию/возрастанию, наподобие кнопок для сортировки вверху таблицы gridview?

likluklak
Автор

Никак не могу вытащить данные, о транзакциях, просто не знаю как так как, уже все перепробовала. Есть таблица gw_transactions, а так же gw_profiles, мне нужно вывести информацию о транзакциях выводя по профайлам, sql запрос для этой задачи выглядит так 'sql' => 'SELECT * FROM gw_transactions WHERE card_id in (SELECT card_id FROM gw_profile_cards where profile_id = '.$profile_id .')',
'db' => 'db_gw',


query запрос я написала так
$query= new yii\db\ActiveQuery;
$query->select('*')
->from('gw_transactions tr');
->leftJoin('gw_profile_cards cd', 'tr.card_id=cd.card_id')

->orderBy('tr.created ASC');

$resp=$command->queryAll();
var_dump($resp);


Так же пробовала жадную загрузку
// $latsTransactions=new GwTransactions();
// $latsTransactions=
// var_dump($latsTransactions);
и отдельно вывести функцию в модель и все остальные методы тоже
Проверяла sql запрос в базе

select *
from
gw_transactions gwtran
left join
gw_profile_cards gwpcard
on
gwtran.card_id = gwpcard.card_id
where
gwpcard.profile_id = ${profile_id}
limit all;
Все работает . Помогите разобраться в чем проблема

akylaimarsova