$categories = Category::find()
->with([
'posts' => function ($query) {
$query->limit(4)->orderBy(['views' => SORT_DESC]);
},
])
->orderBy(['views' => SORT_DESC])
->all();
$categories = Category::find()
->joinWith('posts')
->select('*', 'SUM(posts.views) as category_posts_views')
->with([
'posts' => function ($query) {
$query->limit(4)->orderBy(['views' => SORT_DESC]);
},
])
->groupBy('categories.id')
->orderBy(['category_posts_views' => SORT_DESC])
->all();
$users->update($model);
$users->deactivate($model);
$users->export(); // Внутри вызываешь new UsersExport()->export();, что б не засорять сервис
$usersAuthenticate->register();
$usersAuthenticate->authorize();
release.sh
.ionic repair
.#!/usr/bin/env bash
# Если не работает, проверь слэши и прочее. Зависит от консоли, в которой запускаешь. Например гитовая требует слэши /, а не \
# Билд приложения
ionic cordova build android --prod --release &&
# Переход к собранному приложению
cd platforms/android/app/build/outputs/apk/release &&
# Подпись приложения с помощью личного секретного ключа
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -storepass ТВОЙ_ПАРОЛЬ_ОТ_КЛЮЧА -keypass ТВОЙ_ВТОРОЙ_ПАРОЛЬ_ОТ_КЛЮЧА -keystore C:/ТВОЙ_ПУТЬ_К_КЛЮЧУ/НАЗВАНИЕ_КЛЮЧА.jks app-release-unsigned.apk key &&
# Удаление прошлой сборки для релиза
rm -f НАЗВАНИЕ_ПРИЛОЖЕНИЯ.apk &&
# Оптимизация APK, обязательно перед загрузкой в play market
zipalign -v 4 app-release-unsigned.apk НАЗВАНИЕ_ПРИЛОЖЕНИЯ.apk