Для цього нам потрібно:
/* ... */ use Yii; use yiirbacItem; /* ... */ $auth = Yii::$app -> authManager; $Item = new Item(); $Item -> type = 3; $Item -> name = 'ItemNewName' $Item -> description = 'ItemNewDescription'; $auth -> add($Item);
Замовити розробку сайту або плагіна для WordPress, розробку сайту на фреймворку Laravel, Symfony або Yii2…

Для цього нам потрібно:
/* ... */ use Yii; use yiirbacItem; /* ... */ $auth = Yii::$app -> authManager; $Item = new Item(); $Item -> type = 3; $Item -> name = 'ItemNewName' $Item -> description = 'ItemNewDescription'; $auth -> add($Item);

Перше, що нам потрібно — це підключити сам "Pjax":
use yiiwidgetsPjax;
Далі — обгорнути потрібний контент у віджет Pjax. Наприклад ось так:
<?php Pjax::begin([ 'id' => 'pjaxContent' ]); ?> Content here <?php Pjax::end(); ?>

Кажуть:
вік живи, вік учись, а дурнем помреш
До чого це? А це про трейти в PHP. Вони вже давно з’явилися, а я тільки нещодавно почав їх використовувати в новому проєкті.
Перше, що довелося зробити — винести в trait метод з атрибутами. Так, можна було б створити один батьківський клас і наслідуватися від нього. Але я вирішив зупинитись на трейтах. Що ми маємо:
namespace commontraitsobject;
use Yii;
trait ObjectModelTrait
{
/**
* Labels
* @return array
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'name' => Yii::t('app', 'Name'),
'desc' => Yii::t('app', 'Description'),
'index_id' => Yii::t('app', 'Index'),
'is_active' => Yii::t('app', 'Is active'),
];
}
}Цей trait багаторазово використовувався в моделях. Ось один із прикладів:
namespace commonmodelsterritory;
use yiidbActiveRecord;
use commontraitsobjectObjectModelTrait;
class TerritoryAreaModel extends ActiveRecord
{
use ObjectModelTrait;
public static function tableName()
{
return '{{%territory_area}}';
}
}
Скасування валідації буде виконуватись як на стороні клієнта (для yiiActiveForm), так і на стороні сервера.
Використання сценарію буде слугувати ознакою того, що валідація на стороні сервера для деяких полів виконуватись не буде.
На стороні клієнта скасування валідації для потрібних полів буде виконуватись динамічно, в залежності від вибраної дії (у нашому випадку — видалення).
Наш контролер:
$NewsletterMailForm = new NewsletterMailForm();
if(Yii::$app -> request -> post($NewsletterMailForm -> formName())['event'] != NewsletterMailForm::EVENT_DELETE)
{
$NewsletterMailForm -> scenario = NewsletterMailForm::EVENT_SEND;
}Якщо поле "event" не дорівнює "видалити", це означає, що потрібно надсилати листи (інших дій поки не передбачено).

Для цього слід сформувати запис наступним чином:
Yii::$app -> db -> createCommand() -> update(ContactusModel::tableName(), ['is_read' => 0], [ 'id' => $this -> id ]) -> execute();
Де:
ContactusModel::tableName() — потрібна нам таблиця
$this -> id — масив із ID, який автоматично сформує запит з IN (.., .., .....)