Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 6666 сообщений
Cообщения с меткой

web - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Жадная загрузка в Yii2, для тех кто хочет понять что это такое

Пятница, 22 Июля 2016 г. 16:14 (ссылка)

Пост рассказывает для чего необходимо использовать жадную загрузку, не претендует на идеал. И вряд ли заинтересует профессионалов, больше подходит для начинающих в изучении YII2.



Используем жадную загрузку в своем приложении. Допустим у нас имеется две таблицы с постами и категориями. У каждого поста возможна одна категория, у категорий 1 или более постов.



image





Допустим мы скрудили модели, контроллеры, представления по этим таблицам. Заполним список постов. Обратите внимание, в колонке категорий отображаются сами названия категорий, а не id категорий.



image



Отобразить название категорий можно в представлении: «views/post/index.php» изменив GridView таким образом:







// 'attribute' => 'category_id', к атрибуту category_id, добавляем значение 'value' => 'category.name', где name как раз после с названием категории
// 'filter' => Category::find()->select(['name', 'id'])->indexBy('id')->column(), -- дает фильтрацию по название категорий
// 'value' => 'category.name',





Вот как раз, здесь нам и пригодится «жадная загрузка». Дело в том, что если мы посмотрим sql — запросы нашего приложения.

image



Мы увидим множество запросов из таблицы category, такого вида

SELECT * FROM `sb_category` WHERE `id`=x




Где x — id из постов — category_id. Если у нас будет выводится на странице 100, 500, 1000 постов, будет и столько же выборок в таблице post. В данном случае, если посмотреть по времени выполнения скрипта, запросы в БД выполняются быстро. Но если мы можем сэкономить ресурсы, почему бы этим не воспользоваться. Для этого создана «жадная загрузка». Жадная загрузка, это загрузка с избыточными данными, как бы с присоединенной таблицей.



В модели app\models\PostSearc, в методе search, добавим жадную загрузку через метод with



    public function search($params)
{
$query = Post::find();




    public function search($params)
{
$query = Post::find()->with(['category']);




После этого смотрим на результат:

image



Сейчас мы видим, вместо многочисленных запросов в БД, мы получаем всего 2. Выборку данных из таблиц psot и category.

Метод with собирает все поля category_id из таблицы post, и делает один запрос в БД, извлекая все категории по условию WHERE `id` IN (1, 2, 3, 4, 5). Т.е в where перечисляются все id, которые есть в первой выборке post
SELECT * FROM `sb_post` LIMIT 20




Для того что бы работала фильтрация, сортировка в GridView. Необходимо вместо with(), использовать joinWith().

joinWith() выполняет жадную загрузку и присоединяет дополнительную таблицу с помощью join и это дает нам возможность добавлять условия, сортировку.
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/306248/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Dmitriykn

Рейтинг и каталог платных и бесплатных ЦМС (движков для сайта)

Пятница, 22 Июля 2016 г. 11:21 (ссылка)

Это цитата сообщения KtoNaNovenkogo Оригинальное сообщение

Платные и бесплатные CMS — какой движок выбрать

http://ktonanovenkogo.ru/seo/dvizhok-dlya-sajta-cms-besplatnye-cms-sistemy-upravleniya-kontentom-sajta.html

Движок для сайта (CMS) — обзор, сравнение и выбор платных или бесплатных систем управления контентом | KtoNaNovenkogo.ru - создание, продвижение и заработок на сайте


  1. Платные и бесплатные CMS — какой движок выбрать

  2. Рейтинг и каталог платных и бесплатных ЦМС

  3. Обзор бесплатных систем управления контентом (CMS)

  4. Какие из платных движков являются наиболее интересными

Движок для сайта

Используемый вами движок сайта может быть платным или бесплатным, но главное, чтобы эта CMS (система управления контентом) была вам понятна и удобна
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
KtoNaNovenkogo

Платные и бесплатные CMS — какой движок выбрать

Пятница, 22 Июля 2016 г. 11:18 (ссылка)
ktonanovenkogo.ru/seo/dvizh...sajta.html

Движок для сайта (CMS) — обзор, сравнение и выбор платных или бесплатных систем управления контентом | KtoNaNovenkogo.ru - создание, продвижение и заработок на сайте


  1. Платные и бесплатные CMS — какой движок выбрать

  2. Рейтинг и каталог платных и бесплатных ЦМС

  3. Обзор бесплатных систем управления контентом (CMS)

  4. Какие из платных движков являются наиболее интересными

Движок для сайта

Используемый вами движок сайта может быть платным или бесплатным, но главное, чтобы эта CMS (система управления контентом) была вам понятна и удобна
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<web - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda