public function updateURLCode($name = null) { if (empty($name)) { $name = $this->getName(); } $code = StoreUtils::url_slug($name); $urlCode = $code; $exists = Category::find()->where('id<>:id and url_code=:code', [':id' => $this->id, ':code' => $urlCode])->exists(); $index = 1; while ($exists) { $urlCode = $code . '-' . $index++; $exists = Category::find()->where('id<>:id and url_code=:code', [':id' => $this->id, ':code' => $urlCode])->exists(); } $this->url_code = $urlCode; $this->save(); }