Как отменить валидацию некоторых полей в Yii2
Как отменить валидацию некоторых полей в Yii2

Отмена валидации будет выполняться как на стороне клиента (для yiiActiveForm), так и на стороне сервера.

Использование сценария, будет является признаком того, что валидация на стороне сервера по некоторым полям проходить не будет.

На стороне клиента, отмена валидации по нужным полям будет выполняться динамически, в зависимости от выбранного действия (в нашем случае - удалить).

Наш контроллер:

$NewsletterMailForm = new NewsletterMailForm();

if(Yii::$app -> request -> post($NewsletterMailForm -> formName())['event'] != NewsletterMailForm::EVENT_DELETE)
{
	$NewsletterMailForm -> scenario = NewsletterMailForm::EVENT_SEND;
}

Если поле "event" не равно "удалению", значит нам нужно отправлять письма (пока другого ничего не предусмотрено).

читать полностью...

Использование IN в createCommand фреймворка Yii2
Использование IN в createCommand фреймворка Yii2

Для этого, следует сформировать запись следующим образом

Yii::$app -> db -> createCommand() -> update(ContactusModel::tableName(), ['is_read' => 0], [
	'id' => $this -> id
]) -> execute();	

Где:
ContactusModel::tableName() - нужная нам таблица
$this -> id - массив из ID, который автоматом и сформирует запрос в IN (.., .., .....)

Как установить параметры по умолчанию для виджета в Yii2
Как установить параметры по умолчанию для виджета в Yii2

Для того что бы установить параметры по умолчанию для виджета в Yii2, нужно использовать ф-л внедрения зависимостей (dependency injection).

Пример с DatePicker:

Yii::$container -> set('yiijuiDatePicker', [
	'language' => 'en-US',
]);

Первым параметром в set у нас идет класс, а вторым - нужные параметры для установки. Таким образом, мы можем изначально настроить наш виджет должным образом.

Свои Grid колонки в фреймворке Yii2
Свои Grid колонки в фреймворке Yii2

Продолжаю пополнять свой багаж знаний в Yii2.
О своих колонках в Grid слышал конечно же, но на практике не использовал. Но когда дубляж кода дошел до 5ти штук в разных местах. Вот и задумался, а почему бы и не попробовать? И казалось довольно не плохо и удобно. А главное гибко!

Ниже приведен полный листинг кода примера колонки наследуемой от DataColumn:

namespace backendgrid;

use Yii;
use yiihelpersHtml;
use yiigridDataColumn;

class ActiveColumn extends DataColumn
{
	public $headerOptions = [
		'style' => 'width: 80px;'
	];
	
	public $contentOptions = [
		'class' => 'text-center'
	];
	
	public $attribute = 'is_active';
	
    /**
     * @inheritdoc
     */
    protected function renderDataCellContent($a)
    {
		if($a['is_active'] == 1)
		{
			return Html::a('<span class="glyphicon glyphicon-ok-circle"></span>', [
					'active', 'id' => $a['id'], 'is_active' => 0], [
					'title' => Yii::t('app', 'Unactivate this'),
					'data-pjax' => '0',
				]
			);
		}
		return Html::a('<span class="glyphicon glyphicon-lock"></span>', [
				'active', 'id' => $a['id'], 'is_active' => 1], [
				'title' => Yii::t('app', 'Activate this'),
				'data-pjax' => '0',
			]
		);
    }
}

читать полностью...

Как в PHP узнать завтрашнюю или вчерашнюю дату в формате timestamp?
Как в PHP узнать завтрашнюю или вчерашнюю дату в формате timestamp?

Для того, чтобы узнать вчерашнюю или завтрашнюю дату в формате timestamp (PHP), нужно использовать стандартную функцию PHP "strtotime".

К примеру, отобразим время текущей даты на момент 00:00:00 (ноль часов, ноль минут, ноль секунд):

$t = strtotime('00:00:00');
echo 'Timestamp: '.$t;
echo 'Datetime: '.date('Y-m-d H:i:s',$t);

читать полностью...