public function registerDevice($userId = null) { $guid = $this->createTag(); $userAgent = Yii::$app->request->userAgent; $dd = new DeviceDetector($userAgent); $dd->parse(); $os = $dd->getOs(); $client = $dd->getClient(); $device = new DeviceModel(); $device->guid = $guid; $device->device = $dd->getDeviceName(); $device->model = $dd->getModel(); $device->brand = $dd->getBrandName(); $device->os_name = $os['name']; $device->os_version = $os['version']; $device->client_type = $client['type']; $device->client_name = $client['name']; $device->client_version = $client['version']; $device->user_id = $userId; Yii::$app->session->set('deviceId', $device->id); if (!$device->save()) { Yii::error(['info' => 'Проблема создания устройства в БД', 'message' => $device->getErrors()], __LINE__); return $device->getErrors(); } $this->setTag($guid); $this->id = $device->id; $this->tag = $guid; return $device; }
/** * @return \yii\db\ActiveQuery */ public function getDevice() { return $this->hasOne(Device::className(), ['id' => 'device_id']); }