yii2 ActiveRecord - загрузка данных из ассоциативного массива, сохранения и возврата id -- пример кода
Primary tabs
Сохранить 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...
- Log in to post comments
- 5012 reads