Добавить мульти атрибут в сценарии. Пользователь Yii - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу добавить мульти-атрибут в сценарии. Это user_lastname, user_status. Это переопределить модель пользователя

public function scenarios()
{
    $scenarios = parent::scenarios();

    $scenarios['create'][]   = 'user_name'; 
    $scenarios['update'][]   = 'user_name'; 
    $scenarios['register'][] = 'user_name'; ;
    return $scenarios;
}

Пример, но я обнаружил проблему с преобразованием массива в строку

public function scenarios()
{
    $scenarios = parent::scenarios();
    // add field to scenarios
    $scenarios['create'][]   = ['user_name','user_lastname','user_status']; 
    $scenarios['update'][]   = ['user_name','user_lastname','user_status']; 
    $scenarios['register'][] = ['user_name','user_lastname','user_status']; 
    return $scenarios;
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Если вы хотите добавить элементы в существующий массив, вам нужно добавить каждый элемент отдельно:

public function scenarios()
{
    $scenarios = parent::scenarios();

    $scenarios['create'][] = 'user_name'; 
    $scenarios['update'][] = 'user_name'; 
    $scenarios['register'][] = 'user_name';

    $scenarios['create'][] = 'user_lastname'; 
    $scenarios['update'][] = 'user_lastname'; 
    $scenarios['register'][] = 'user_lastname';

    $scenarios['create'][] = 'user_status'; 
    $scenarios['update'][] = 'user_status'; 
    $scenarios['register'][] = 'user_status';

    return $scenarios;
}

$scenarios['create'][] = ['user_name','user_lastname','user_status']; просто добавит один элемент в виде массива.

0 голосов
/ 30 апреля 2019

Удалить массив [] из списка сценариев.

public function scenarios()
{
   $scenarios = parent::scenarios();

   // add field to scenarios
   $scenarios['create']   = ['user_name','user_lastname','user_status']; 
   $scenarios['update']   = ['user_name','user_lastname','user_status']; 
   $scenarios['register'] = ['user_name','user_lastname','user_status']; 

   return $scenarios;
}

Используйте const для объявления имен сценариев. Например, const SCENARIO_CREATE = 'create';

...