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
- 5418 reads