Код: Выделить всё
public function importExcel($inputFile)
{
$model = new ClientForm(['scenario' => 'insert']);
if ($model->load(Yii::$app->request->post()) && $model->importExcel($inputFile)) {
Yii::$app->session->setFlash('success', 'Регистрация прошла успешно');
return $this->redirect(['index']);
}
}
Код: Выделить всё
public function importExcel($inputFile)
{
$inputFileType = IOFactory::identify($inputFile);
$objReader = IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFile);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
for ($rowNumber = 2; $rowNumber <= $highestRow; $rowNumber++) {
$rowData = $sheet->rangeToArray(
'A' . $rowNumber . ':' . $highestColumn . $rowNumber,
NULL,
TRUE,
FALSE
);
$surname = $rowData[0][0];
$name = $rowData[0][1];
$secondName = $rowData[0][2];
$phone = $rowData[0][3];
$email = $rowData[0][4];
$type = $rowData[0][5];
$sex = $rowData[0][6];
$house = $rowData[0][7];
$entrance = $rowData[0][8];
$room = $rowData[0][9];
$existingUser = \backend\models\User::find()->where(['phone' => $phone])->one();
if (empty($existingUser)) {
$user = new User();
$user->surname = $surname;
$user->name = $name;
$user->second_name = $secondName;
$user->phone = (string)$phone;
$user->email = $email;
$user->type = $type;
$user->sex = $sex;
$user->status = User::STATUS_ACTIVE;
$user->generateAuthKey();
$user->setPassword(Yii::$app->security->generateRandomString(6));
$user->created_at = date('Y-m-d H:i:s');
$user->updated_at = date('Y-m-d H:i:s');
$user->save();
$user->role = User::ROLE_CUSTOMER;
$houseExists = House::find()->where(['id' => $house])->exists();
if (isset($house) && !empty($houseExists)) {
$address['house'] = (int)$house;
$address['entrance'] = (int)$entrance;
$address['room'] = (string)$room;
Client::saveAddress($user->id, $address);
}
}
}
return true;
}
Код: Выделить всё
if ($this->validate()) {
...}
else
{
return $this->render('_form', [
'model' => $user,
]);
}