$someQuery = Category::find()->where(['status' => Coupon::STATUS_NEW])->orderby('create_at');
$yourSomeProvide r= new ActiveDataProvider([
'query' => $someQuery,
'pagination' => [
'pageSize' => 8, // сколько объектов на стр.
],
]);
$sort = new Sort([
'attributes' => [
'created_at' => [
'asc' => ['created_at' => SORT_ASC],
'desc' => ['created_at' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'новизне',
],
],
]);
return $this->render('index', [
'yourSomeProvider' => $yourSomeProvider,
'sort' => $sort,
]);
<?= \yii\helpers\HtmlPurifier::process($model->description); ?>
Yii::$app->user->identity->id
public function actionToggle()
{
$a = [
['id' => '123', 'data' => 'abc', 'device' => 'laptop'],
['id' => '345', 'data' => 'def', 'device' => 'tablet'],
['id' => '345', 'data' => 'hgi', 'device' => 'smartphone'],
];
$b = ArrayHelper::index($a, 'id');
return $this->render('toggle', [
'b' => $b,
]);
}
<?php
/* @var $this yii\web\View */
$this->title = 'Ars';
?>
<h1>Привет</h1>
<?php
echo "<pre>";
var_dump($b);
?>
array(2) {
[123]=> array(3) {
["id"]=> string(3) "123"
["data"]=> string(3) "abc"
["device"]=> string(6) "laptop"
}
[345]=>
array(3) {
["id"]=> string(3) "345"
["data"]=> string(3) "hgi"
["device"]=> string(10) "smartphone"
}
}
'components' => [
'formatter' => [
'dateFormat' => 'd.MM.Y',
'timeFormat' => 'H:mm:ss',
'datetimeFormat' => 'd.MM.Y H:mm',
],
],
/* Тут идет установка часового пояса
* естественно вы можете хранить их в кэше или БД
* или вычислять по IP или JS. Тайм зоны можно хранить
* в разных форматах. Лучше в UTC, а еще лучше в
* UNIX timestamp. 1412599260 / 2014-10-06 12:41:00
*/
$myTimeZone = "Europe/Berlin";
Yii::$app->timeZone = $myTimeZone;
Yii::$app->getFormatter()->asDate(time()); // время
Yii::$app->getFormatter()->asDatetime(time()); // Дата и время
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['someActionOne', 'someActionTwo',],
'rules' => [
[
'allow' => true,
'actions' => ['someActionOne', 'someActionTwo'],
'roles' => ['?'],
],
],
],
];
}
public function signup()
{
if ($this->validate()) {
$user = new User();
$user->username = $this->username;
$user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
if ($user->save()) {
// тут можно закинуть отправку токена на мыло
}
return $user; // это отправка будет на ваш экшн
}
return null;
}
public function actionSignup()
{
$model = new SignupForm(); // создается форма что выше
if ($model->load(Yii::$app->request->post())) { // грузит модель из суперглобалки ПОСТ
if ($user = $model->signup()) { // создается юзер используется функция из формы
Yii::$app->getSession()->setFlash('success', 'Регистрация успешна'); // всплывающее сообщение
return $this->goHome(); //возврат на домашку
}
}
return $this->render('signup', [
'model' => $model,
]);
}
$model = New User();
$model->username = $arrayUser['100']['username']
$model->email = $arrayUser['100']['email']
$model->setPassword($arrayUser['100']['password']);
$model->save();
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'/' => 'site/index'
/* другие правила */
],
],
public function actionUpdate()
{
// Тут получаете свой cat либо передаете каким либо образом.
$products = Product::find()->where('category_id'= $cat->id)->indexBy('id')->all();
if (Model::loadMultiple($products, Yii::$app->request->post()) && Model::validateMultiple($products)) {
foreach ($products as $product) {
$product->save(false);
}
return $this->redirect('index');
}
return $this->render('update', ['products' => $products]);
}
$form = ActiveForm::begin();
foreach ($products as $index => $product) {
echo $form->field($product, "[$index]value")->checkbox(['value' => $prod->title, 'label' => $prod->title]);
}
ActiveForm::end();
//получаете продукты и связи за один запрос.
$products = Product::find()->with('category', 'someTied')->all();
//или с условием
$products = Product::find()->with([
'categpry' => function ($query) {
$query->andWhere(['category_id' => 15]);
},
])->all();
function ($someCountry = 'Ukraine')
{
$product = Product::findOne(123);
//Запрос ниже выполняться может сколько угодно раз в отличии от $price = $product ->Price();
$price = $product ->getPrice()
->where(['country =:someCountry', [':someCountry' => $someCountry])
->orderBy('id')
->all();
}
class Product extends ActiveRecord
{
public function getBigPrices($someCountry)
{
return $this->hasMany(Price::className(), ['product_id' => 'id'])
->where('country > :someCountry', [':someCountry' => $someCountry])
->orderBy('id');
}
}
$query->where(['country' => USA]);
return $this->render('thanks');
// показывает файл "@app/views/site/license.php"
echo \Yii::$app->view->renderFile('@app/views/site/license.php');
yii migrate --migrationPath=@app/modules/forum/migrations --interactive=0