<?php
define('QUERY_TABLE_PREFIX', 'prefix_');
define('QUERY_TABLE_ENTITYES', 'entity');
define('QUERY_GET_ENTITY_BY_ID',
'SELECT `id` AS id, `name` AS name, `origin` AS domain, `token` AS token ' .
'FROM ' . QUERY_TABLE_PREFIX . QUERY_TABLE_ENTITYES . ' ' .
'WHERE `id`=?i LIMIT 1'
);
class Query
{
const TABLE_PREFIX = QUERY_TABLE_PREFIX;
const TABLE_ENTITYES = QUERY_TABLE_ENTITYES;
const GET_ENTITY_BY_ID = QUERY_GET_ENTITY_BY_ID;
}
$queryString = Query::GET_ENTITY_BY_ID;
class Set implements \ArrayAccess, \Countable, \IteratorAggregate
В \Slim\Helper\Set никаких магических методов нет имеется.
<?php
use miloschuman\highcharts\Highcharts;
use yii\web\JsExpression;
$this->registerAssetBundle('yii\web\YiiAsset');
echo Highcharts::widget([
'options' => [
'title' => ['text' => 'Статистика за месяц'],
'xAxis' => [
'categories' => array_keys($statistic)
],
'yAxis' => [
'title' => ['text' => 'Достижения цели']
],
'series' => [
['name' => 'Jane', 'data' => array_values($statistic), 'class'=>'test-class'],
],
'plotOptions' => [
'series' => [
'cursor' => 'pointer',
'point' => [
'events' => [
'click' => new JsExpression('function(e){ alert(this.x); }')
]
]
]
]
]
]);
/**
* @param $params
* @param $group
* @return \yii\data\ActiveDataProvider
*/
public function search($params, $group = null )
{
$this->scenario = self::SCENARIO_SEARCH; // когда у вас много правил по умолчанию следует использовать сценарии
// базовый поиск
$query = self::find();
$dataProvider = new \yii\data\ActiveDataProvider([
'query' => $query,
]);
// Тут и нужный кастомные сценарии если базовая валидация мешает.
if (!( $this->load($params) && $this->validate())) {
return $dataProvider;
}
// применяем сортировку
$dataProvider->setSort([
'attributes' => [
'id',
]
]);
// добавляем к поиску условие например найти по диапазону даты.
if(!empty($this->dateFrom) && !empty($this->dateTo)) {
$query->andWhere('`hour_at` BETWEEN :dateFrom AND :dateTo', [
':dateFrom' => date('Y-m-d H:00:00', strtotime(trim($this->dateFrom))),
':dateTo' => date('Y-m-d H:59:59', strtotime(trim($this->dateTo))),
]);
}
// Добавляет условия если атрибуты нашей модели заполнены !=null
$query->andFilterWhere([
'stream_id' => $this->stream_id,
'country_id' => $this->country_id,
'browser' => $this->browser,
'os' => $this->os,
]);
return $dataProvider;
}
<?=GridView::widget([
'dataProvider' => $user->search(Yii::$app->request->get()),
'filterModel' => $user,
'columns' => [
'id',
'username' => [
'attribute' => 'username',
],
'email',
]]);?>
$query->join('left',Country::tableName(),'user.country_id='.Country::tableName().'.id');
$query->andFilterWhere([
Country::tableName().'.name' => $this->countryName
]);
<style>
<script>
background-image: url(data:image/gif;base64,{{base64_content}});
<img src="data:image/gif;base64,{{base64_content}}" alt="" />
@font-face {
font-family: 'FontName';
src: url(data:font/truetype;charset=utf-8;base64,{{base64_content}}) format('truetype'),
url(data:font/woff;charset=utf-8;base64,{{base64_content}}) format('woff');
}
<form action="..." method="POST" name="robokassa">
<input type="hidden" name="MrchLogin" value="...">
<input type="hidden" name="OutSum" value="...">
<input type="hidden" name="InvId" value="...">
<input type="hidden" name="Desc" value="...">
<input type="hidden" name="SignatureValue" value="...">
<input type="hidden" name="IncCurrLabel" value="...">
<input type="hidden" name="Culture" value="...">
</form>