Yii2

yii2 advanced Папка enviroments для чего она нужна

Папка содержит описание конфигов для разных сред dev и prod (можно добавить и другие среды). Конфиги являются образацами которые после инициалиизации приложения переносятся в папки постоянного пребывания.

Подробности: https://github.com/yiisoft/yii2-app-adva...

yii2 Создание для обработки ошибок отдельного контроллера (шаблона и т.д.)

В конфиг в секцю компонентов добавляем:

'components' => ['errorHandler' => [
        'errorAction' => 'контроллер/действие',
    ],

Далее просто создаем контроллер и действие в нём, соответствующие маршруту контроллер/действие из конфига.

yii2 Форматирование даты и времени из строки в т.ч. пустых

Используейте:

 Yii::$app->formatter

например:

Yii::$app->formatter->asDate($reception->date);
Yii::$app->formatter->asTime($reception->time_start);

yii2 navbar Выводим элементы меню доступные только данному пользователю

Проверка вручную

Скроем некоторые элементы от неавторизированного пользователя, проверив, что он являтеся гостем, например:

yii2 rules access Для всех действий контроллера

Просто не указывайте список действий в правиле, например:

public function behaviors()
{
	return [
		'access' => [
			'class' => AccessControl::className(),
			'rules' => [
				[
					'allow' => true,
					'roles' => ['@'],
				],
			],
		],
	];
}

-- заблокирует все методы для неавторизированных пользователей.

yii2 setFlash не работает вместе с редиректом. Не выполнять действие контроллера и сделать редирект -- средствами beforeAction()

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

Возможное решение

Если вы используете beforeAction(), то отдельно делайте редирект и отдельно явно возвращайте false, в случае если метод перед которым делается проверка выполнять не нужно:

yii2 Валидация require с условием when -- на клиентской стороне (JS)

Для того, чтобы валидация обязательность поля с условием работала на клиентской стороне, необходимо явно прописать JS функцию, например:

yii2 Виртуальные поля (виртуальные атрибуты) модели -- пример (Model)

use yii\base\Model;

class Deputy extends Model
{
    public $id;
    public $name;
    
    public function getFractionInfo()
    {
        return 'лучшая партия';
    }
    
}

Обратить можно так (как к обычному свойству):

$dep = Deputy();
$dep->fractionInfo;

Подробнее о виртуальных атрибутах в yii2: http://fkn.ktu10.com/?q=node/9893

Pages

Subscribe to RSS - Yii2