yii2 ActiveRecord - загрузка данных из ассоциативного массива, сохранения и возврата id -- пример кода

Сохранить ActiveRecord, заполнив поля из ассоциативного массива можно в такой манере:

/**
 * Сохранит нового клиента и вернёт его id
 * 
 * @param  array $arrayData - ассоциативный массив с полями данных клиента
 * @return int              - id добавленного клиента
 */
public function createNewClient($arrayData) 
{
	$Client = new Client(); // создаём модель
	$Client->attributes = $arrayData; // загшружаем из массива
	
	print_r($Client);
	$Client->save();
	
	return $Client->id; // возвращаем id
}

Но чтобы проводить подобное присваивание:

$Client->attributes = $arrayData; 

Необходимо определить правила валидации данных для загружаемых полей, или (что проще, но не всегда безопасна) объявить их безопасными, для чего в метод rules() модели можно добавить подобное:

class Client extends ActiveRecord 
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%client}}';
    }
    
    public function rules()
    {
        return [
            [["name",
                "surname",
                "email",
                "create_time",
                "dob",
                "gender",
                "address",
                "phone",
                "skype",
                "comments",
                "user_id"], 'safe'], // эти поля пропускать без валидации
        ];
    }

(или можно написать нормальные правила валидации для каждого поля)

Подробности: http://www.yiiframework.com/doc-2.0/guid...