Yii2

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

yii2 Миграция из SQL файла -- как загрузкить дамп. Пример миграции

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

$this->execute()

Например:

<?php

use yii\db\Migration;

/**
 * Class m180621_120026_install_mgd_old_users_dump
 */
class m185521_188026_install_old_users_dump extends Migration
{
    public $maxSqlOutputLength = 100;
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        $this->execute(
            file_get_contents(
                    __DIR__ . '/dumps/user_dump.sql')
        ); 
    }

yii2 Пример миграции с полями в т.ч: decimal, bool (логического), unsigned Not NUll, Defautl value (по умолчанию), внешний ключ


public function safeUp()
{

    //Добавляем все необходимые поля
    $this->createTable($this->tableName, [
        'id' => $this->primaryKey()->notNull(),
        'organization_id' =>  $this->integer()->notNull()
                ->comment('Связь с  организации'),
        'frmo_id' =>   $this->integer()->defaultValue(null)
            ->comment('id здания '),
        'build_name' => $this->string(256)->notNull()
            ->comment('Наименование здания'), // для строк переменной длины, напр. вместо varchar(256)

yii2 Комментарий ко всей таблице и к полю (колонке) в миграции -- пример кода (движок ,начальное значение id), создание таблицы

Комментарий как и всё опции, что идут после перечисления колонок в SQL запросе можно добавить так:

//Добавляем все необходимые поля
$this->createTable($this->tableName, [
	'id' => $this->primaryKey()->notNull(),
	'organization_id' =>  $this->integer()
               ->defaultValue(null)->comment('Связь с таблицей организации'),
	],
	"COMMENT 'Тут комментарий к таблице '"//  SQL который добавляется после полей
);

codeception submitForm Отправка формы с теми значениями, которые в ней уже есть -- или перезапись их

Просто передайте вторым аргументом пустой массив:

$I->submitForm('#logout-form', []);

-- а можно используя ключи-значения массива, изменить значения некоторых полей формы

Pages

Subscribe to RSS - Yii2