public static function increment($browser, $url) { if (is_a($url, Url::className())) { $url = $url->id; } if (!is_numeric($url)) { throw new InvalidParamException('Url must be a number or object of app\\models\\Url with id'); } $browserUrl = BrowserUrl::findOne(['browser' => $browser, 'id_url' => $url]); if (empty($browserUrl)) { $browserUrl = new BrowserUrl(['browser' => $browser, 'id_url' => $url, 'counter' => 1]); } else { $browserUrl->counter++; } $browserUrl->save(); }
/** * @return \yii\db\ActiveQuery */ public function getUrl() { return $this->hasOne(Url::className(), ['id' => 'url_id']); }
public function rules() { return [[['url'], 'required', 'message' => 'Введите адрес ссылки'], [['url'], 'string', 'max' => 255, 'tooLong' => 'Превышена длина'], [['url'], 'url', 'message' => 'Это не адрес ссылки'], [['short'], 'string', 'max' => 8, 'tooLong' => 'Ссылка должна быть не более 8 символов', 'min' => 3, 'tooShort' => 'Минимум 3 символа'], [['dieable'], 'default', 'value' => 0], [['dieable'], 'number', 'max' => 1], [['short'], 'unique', 'targetClass' => Url::className()]]; }
public function getUrls() { return $this->hasMany(Url::className(), ['user_id' => 'id']); }