Код: Выделить всё
use yii\db\Migration;
use \app\models\user\UserFields;
/**
* Class m170829_050952_add_require_field_for_user_fields
*/
class m170829_050952_add_require_field_for_user_fields extends Migration
{
/**
* @inheritdoc
*/
public function safeUp()
{
$this->addColumn(UserFields::tableName(), 'required', $this->boolean());
foreach (UserFields::find()->all() as $field){
/**
* @var UserFields $field
*/
$field->required = !($field->type == UserFields::TYPE_CHECKBOX || $field->type == UserFields::TYPE_SELECT || in_array($field->key, ['city', 'phone']));
$field->save();
}
}
/**
* @inheritdoc
*/
public function safeDown()
{
$this->dropColumn(UserFields::tableName(), 'required');
}
}
Код: Выделить всё
Yii Migration Tool (based on Yii v2.0.13-dev)
Total 1 new migration to be applied:
m170829_050952_add_require_field_for_user_fields
Apply the above migration? (yes|no) [no]:yes
*** applying m170829_050952_add_require_field_for_user_fields
> add column required boolean to table {{%user_fields}} ... done (time: 0.002s)
Exception: Setting unknown property: app\models\user\UserFields::required (/var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Component.php:203)
#0 /var/www/web/sites/qwe/vendor/yiisoft/yii2/db/BaseActiveRecord.php(307): yii\base\Component->__set('required', true)
#1 /var/www/web/sites/qwe/app/migrations/m170829_050952_add_require_field_for_user_fields.php(22): yii\db\BaseActiveRecord->__set('required', true)
#2 /var/www/web/sites/qwe/vendor/yiisoft/yii2/db/Migration.php(107): m170829_050952_add_require_field_for_user_fields->safeUp()
#3 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(705): yii\db\Migration->up()
#4 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(185): yii\console\controllers\BaseMigrateController->migrateUp('m170829_050952_...')
#5 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#6 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#7 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#8 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/Controller.php(135): yii\base\Controller->runAction('', Array)
#9 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('', Array)
#10 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate', Array)
#11 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate', Array)
#12 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
#13 /var/www/web/sites/qwe/yii(29): yii\base\Application->run()
#14 {main}
*** failed to apply m170829_050952_add_require_field_for_user_fields (time: 0.016s)
0 from 1 migrations were applied.
Migration failed. The rest of the migrations are canceled.
Подскажите пожалуйста, куда копать?