Сделал графики в проекте. Чудесная либа, завелась с полпинка.
Метка: yii
на память
В yii2, как известно, переписаны все классы. На мой взгляд, управление выборками из БД стало удобней чем в yii1, хоть и, по традиции, все закопано под горой кода. Например, теперь where и order by пишутся так:
// find the customer whose ID is 1 $customer = Customer::find()->where(['id' => 1])->one(); // find all active customers and order them by their age: $customers = Customer::find() ->where(['status' => 1]) ->andWhere('age>30') ->orderBy('age') ->all();
По between теперь так, например:
$model = User::find() ->select('username') ->asArray() ->where('userid between 1 and 5') ->all();
Но я не стал заморачиваться и сделал по-рабоче-крестьянски, через findBySql(). Интересная заметка пригодилась для осмысления процесса. Но сделал опять по-сермяжьи, так надежней, имхо.
'query'=>qqWeek::findBySql('SELECT * FROM qq WHERE date between now()-interval 7 day and now()+0 group by qq order by ww desc')
ps А вот есть интересная новость – телеграм подженили на малинке, что есть крайне гуд, это дает возможность построить систему сообщений из умного дома.
pps Из-за вылезшего косяка во вьюхе – грид нумерует страницы как попало – пришлось до конца разобраться в active record и active query. Почитал код класса и сделал контроллер как ножом по маслу.
$dataProvider = new ActiveDataProvider([ 'query' => TopQqAllTime::find() ->orderBy(['ww'=>SORT_DESC]) ->groupBy('qq') ->select('qq,sum(ww) AS ww')]);
Ман по AR is тута. А ‘->all()’ превращает сталь в жесть, после него хоть потоп – массив. Помни об этом, играя регтайм.
маленькие сюрпризы yii2
Никого не трогаю, переношу админку с yii1 на yii2, оставляю в db.php host=localhost, генератор моделей вываливает кучу,
Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or directory
ладно, думаю, прописываю host=mydomain.com, gii опять навалил кучку
Database Exception – yii\db\Exception
SQLSTATE[HY000] [1045] Access denied for user ‘qq’@’mydomain.com’ (using password: YES)
Caused by: PDOException
А вот так оно спокойно соединилось:
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=qq', 'username' => 'qq', 'password' => 'qq', 'charset' => 'utf8', ];
Чудны дела твои, Qiang Xue…
И еще – во втором yii в crud-генераторе нужно указывать полный namespace, в отличии от yii1, иначе он не осциллирует, падла.
И много-много раз – в yii1 была ссылка на сгенерированный контент, а в yii2 ее нет, негодяи.