本文整理汇总了PHP中app\components\Helper::createSlug方法的典型用法代码示例。如果您正苦于以下问题:PHP Helper::createSlug方法的具体用法?PHP Helper::createSlug怎么用?PHP Helper::createSlug使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\components\Helper
的用法示例。
在下文中一共展示了Helper::createSlug方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createCategory
private function createCategory($name, $parent_id)
{
$model = new Category();
$model->loadDefaultValues();
$model->name = $name;
$model->parent_id = $parent_id;
$model->slug = Helper::createSlug($model->name);
$model->save();
return $model;
}
示例2: run
public function run()
{
$file = UploadedFile::getInstanceByName($this->fileName);
if ($file->hasError) {
throw new HttpException(500, 'Upload error');
}
$transliteratedFileName = Helper::createSlug(substr(strstr(strtolower($file->name), $file->extension, true), 0, -1));
$fileName = $transliteratedFileName . '.' . $file->extension;
if (Yii::$app->getModule('image')->fsComponent->has($fileName)) {
$fileName = $transliteratedFileName . '-' . uniqid() . '.' . $file->extension;
}
Yii::$app->getModule('image')->fsComponent->put($fileName, file_get_contents($file->tempName));
$response = ['filename' => $fileName];
if (isset($this->afterUploadHandler)) {
$data = ['data' => $this->afterUploadData, 'file' => $file, 'dirName' => $this->uploadDir, 'filename' => $fileName, 'params' => Yii::$app->request->post()];
if ($result = call_user_func($this->afterUploadHandler, $data)) {
$response['afterUpload'] = $result;
}
}
return Json::encode($response);
}
示例3: createEmptyCategory
/**
* @param int $parentId
* @param int|null $categoryGroupId
* @param string $name
* @param bool $dummyObject
* @return Category|null
*/
public static function createEmptyCategory($parentId = 0, $categoryGroupId = null, $name = 'Catalog', $dummyObject = false)
{
$categoryGroupId = null === $categoryGroupId ? CategoryGroup::getFirstModel()->id : intval($categoryGroupId);
$model = new static();
$model->loadDefaultValues();
$model->parent_id = $parentId;
$model->category_group_id = $categoryGroupId;
$model->h1 = $model->title = $model->name = $name;
$model->slug = Helper::createSlug($model->name);
if (!$dummyObject) {
if (!$model->save()) {
return null;
}
$model->refresh();
}
return $model;
}
示例4: createProduct
protected function createProduct($item = [], $createNotExists = true)
{
if (empty($item) || !isset($item[static::ELEMENT_ID]) || !isset($item[static::ELEMENT_NAIMENOVANIE])) {
return false;
}
$guid = CommercemlGuid::findOne(['guid' => $item[static::ELEMENT_ID], 'type' => 'PRODUCT']);
if (empty($guid) && $createNotExists) {
$category = !empty($item['categories']) ? array_shift($item['categories']) : null;
$product = new Product();
$product->name = $product->title = $product->h1 = $item[static::ELEMENT_NAIMENOVANIE];
$product->slug = Helper::createSlug($product->name);
$product->main_category_id = isset($this->categoryCache[$category]) ? $this->categoryCache[$category] : $this->rootCategoryCache;
$product->content = empty($item[static::ELEMENT_OPISANIE]) ? '' : $item[static::ELEMENT_OPISANIE];
if ($product->validate() && $product->save()) {
$product->refresh();
$product->linkToCategory($this->rootCategoryCache);
$guid = new CommercemlGuid();
$guid->guid = $item[static::ELEMENT_ID];
$guid->name = $item[static::ELEMENT_NAIMENOVANIE];
$guid->model_id = $product->id;
$guid->type = 'PRODUCT';
$guid->save();
return true;
}
}
if (!empty($guid)) {
/** @var Product $product */
$product = isset($product) ? $product : $guid->product;
if (!empty($product)) {
$product->price = empty($item['price']) ?: array_shift($item['price']);
$product->content = empty($item[static::ELEMENT_OPISANIE]) ?: $item[static::ELEMENT_OPISANIE];
$product->name = empty($item[static::ELEMENT_NAIMENOVANIE]) ?: $item[static::ELEMENT_NAIMENOVANIE];
if (!empty($item['properties'])) {
AbstractPropertyEavModel::setTableName($this->objectProduct->eav_table_name);
$product_eav = array_reduce(AbstractPropertyEavModel::findByModelId($product->id), function ($result, $item) {
$key = $item->property_group_id . ':' . $item->key;
$result[$key] = $item;
return $result;
}, []);
$product_groups = array_reduce(ObjectPropertyGroup::getForModel($product), function ($result, $item) {
$result[] = $item->property_group_id;
return $result;
}, []);
$product_osv = array_reduce(ObjectStaticValues::findAll(['object_id' => $this->objectProduct->id, 'object_model_id' => $product->id]), function ($result, $item) {
$result[] = $item->property_static_value_id;
return $result;
}, []);
foreach ($item['properties'] as $key => $value) {
if (isset(static::$propertiesCache[$key])) {
/** @var Property $prop */
$prop = static::$propertiesCache[$key];
if (!in_array($prop->property_group_id, $product_groups)) {
$objectGroup = new ObjectPropertyGroup();
$objectGroup->object_id = $this->objectProduct->id;
$objectGroup->object_model_id = $product->id;
$objectGroup->property_group_id = $prop->property_group_id;
$objectGroup->save();
}
if ($prop->has_static_values) {
$psv = PropertyStaticValues::findOne(['value' => $value]);
if (empty($psv)) {
$psv = new PropertyStaticValues();
$psv->name = $psv->value = $value;
$psv->property_id = $prop->id;
$psv->slug = Helper::createSlug($value);
if ($psv->validate() && $psv->save()) {
$psv->refresh();
} else {
$psv = null;
}
}
if (!empty($psv) && !in_array($psv->id, $product_osv)) {
$osv = new ObjectStaticValues();
$osv->object_id = $this->objectProduct->id;
$osv->object_model_id = $product->id;
$osv->property_static_value_id = $psv->id;
$osv->save();
}
} elseif ($prop->is_eav) {
$_key = $prop->property_group_id . ':' . $prop->key;
if (isset($product_eav[$_key])) {
/** @var AbstractPropertyEavModel $eav */
$eav = $product_eav[$_key];
$eav->value = $value;
$eav->save();
} else {
$eav = new AbstractPropertyEavModel();
$eav->object_model_id = $product->id;
$eav->property_group_id = $prop->property_group_id;
$eav->key = $prop->key;
$eav->value = $value;
$eav->save();
}
}
}
}
}
$product->save();
return true;
}
//.........这里部分代码省略.........
示例5: processImportBeforeSave
/**
* Process fields before the actual model is saved(inserted or updated)
* @param array $fields
* @return void
*/
public function processImportBeforeSave(array $fields, $multipleValuesDelimiter, array $additionalFields)
{
$_attributes = $this->attributes();
foreach ($fields as $key => $value) {
if (in_array($key, $_attributes)) {
$this->{$key} = $value;
}
}
$categories = $this->unpackCategories($fields, $multipleValuesDelimiter, $additionalFields);
if ($categories !== false && $this->main_category_id < 1) {
if (count($categories) == 0) {
$categories = [1];
}
$this->main_category_id = $categories[0];
}
if (empty($this->slug)) {
$this->slug = Helper::createSlug($this->name);
} elseif (mb_strlen($this->slug) > 80) {
$this->slug = mb_substr($this->slug, 0, 80);
}
if (empty($this->name)) {
$this->name = 'unnamed-product';
}
if (!is_numeric($this->price)) {
$this->price = 0;
}
if (!is_numeric($this->old_price)) {
$this->old_price = 0;
}
}
示例6: actionAddStaticValue
public function actionAddStaticValue($key, $value = "", $returnUrl)
{
$model = new PropertyStaticValues();
$property = Property::find()->where(['key' => $key])->one();
$model->property_id = $property->id;
if (Yii::$app->request->isPost) {
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$this->redirect($returnUrl);
}
} elseif ($value !== "") {
$model->name = $value;
$model->value = $value;
$model->slug = Helper::createSlug($value);
$model->sort_order = 0;
}
return $this->renderAjax('ajax-static-value', ['model' => $model]);
}
示例7: up
//.........这里部分代码省略.........
fclose($f);
}
$this->batchInsert('{{%auth_item}}', ['name', 'type', 'description'], [['admin', '1', Yii::t('app', 'Administrator')], ['manager', '1', Yii::t('app', 'Manager')], ['administrate', '2', Yii::t('app', 'Administrate panel')], ['api manage', '2', Yii::t('app', 'API management')], ['seo manage', '2', Yii::t('app', 'SEO management')], ['task manage', '2', Yii::t('app', 'Task management')], ['user manage', '2', Yii::t('app', 'User management')], ['cache manage', '2', Yii::t('app', 'Cache management')], ['content manage', '2', Yii::t('app', 'Content management')], ['shop manage', '2', Yii::t('app', 'Shop management')], ['order manage', '2', Yii::t('app', 'Order management')], ['category manage', '2', Yii::t('app', 'Category management')], ['product manage', '2', Yii::t('app', 'Product management')], ['property manage', '2', Yii::t('app', 'Property management')], ['view manage', '2', Yii::t('app', 'View management')], ['review manage', '2', Yii::t('app', 'Review management')], ['navigation manage', '2', Yii::t('app', 'Navigation management')], ['form manage', '2', Yii::t('app', 'Form management')], ['media manage', '2', Yii::t('app', 'Media management')], ['order status manage', '2', Yii::t('app', 'Order status management')], ['payment manage', '2', Yii::t('app', 'Payment type management')], ['shipping manage', '2', Yii::t('app', 'Shipping option management')], ['newsletter manage', '2', Yii::t('app', 'Newsletter management')], ['monitoring manage', '2', Yii::t('app', 'Monitoring management')], ['data manage', '2', Yii::t('app', 'Data management')], ['setting manage', '2', Yii::t('app', 'Setting management')]]);
$this->batchInsert('{{%auth_item_child}}', ['parent', 'child'], [['shop manage', 'category manage'], ['shop manage', 'product manage'], ['shop manage', 'order manage'], ['manager', 'administrate'], ['manager', 'content manage'], ['manager', 'order manage'], ['manager', 'shop manage'], ['manager', 'category manage'], ['manager', 'product manage'], ['manager', 'property manage'], ['manager', 'view manage'], ['manager', 'review manage'], ['manager', 'navigation manage'], ['manager', 'form manage'], ['manager', 'media manage'], ['admin', 'administrate'], ['admin', 'api manage'], ['admin', 'order manage'], ['admin', 'seo manage'], ['admin', 'task manage'], ['admin', 'user manage'], ['admin', 'cache manage'], ['admin', 'content manage'], ['admin', 'shop manage'], ['admin', 'category manage'], ['admin', 'product manage'], ['admin', 'property manage'], ['admin', 'view manage'], ['admin', 'review manage'], ['admin', 'navigation manage'], ['admin', 'form manage'], ['admin', 'media manage'], ['admin', 'order status manage'], ['admin', 'payment manage'], ['admin', 'shipping manage'], ['admin', 'monitoring manage'], ['admin', 'newsletter manage'], ['admin', 'data manage'], ['admin', 'setting manage']]);
$this->insert('{{%auth_assignment}}', ['item_name' => 'admin', 'user_id' => $user->id]);
// demo data
$demo = null;
if (getenv("INSTALL_DEMO_DATA")) {
$demo = getenv("INSTALL_DEMO_DATA");
} else {
$stdIn = fopen("php://stdin", "r");
do {
echo 'Do you want to install demo data [y/n]: ';
$demo = strtolower(trim(fgets($stdIn)));
} while (!in_array($demo, ['y', 'n']));
fclose($stdIn);
}
if ($demo == 'y') {
echo "INFO: Installing demo data\n";
$object = Object::getForClass(Product::className());
$propertyGroup = new PropertyGroup();
$propertyGroup->attributes = ['object_id' => $object->id, 'name' => 'Тестовый набор свойств', 'hidden_group_title' => 1];
$propertyGroup->save();
$propertyStaticValuesCount = [5, 3, 3, 2, 4, 5, 2];
$propertyValues = [];
for ($i = 1, $k = 1; $i <= 7; $i++) {
$property = new Property();
$property->attributes = ['property_group_id' => $propertyGroup->id, 'name' => 'Свойство ' . $i, 'key' => 'svoystvo_' . $i, 'value_type' => 'STRING', 'property_handler_id' => 2, 'has_static_values' => 1, 'has_slugs_in_values' => 1, 'handler_additional_params' => '{}'];
$property->save(true, ['property_group_id', 'name', 'key', 'value_type', 'property_handler_id', 'has_static_values', 'has_slugs_in_values', 'handler_additional_params']);
$propertyValues[$property->id] = [];
for ($j = 1; $j <= $propertyStaticValuesCount[$i - 1]; $j++) {
$psv = new PropertyStaticValues();
$name = 'Значение ' . $k;
$psv->attributes = ['property_id' => $property->id, 'name' => $name, 'value' => $name, 'slug' => Helper::createSlug($name)];
$psv->save(true, ['property_id', 'name', 'value', 'slug']);
$propertyValues[$property->id][] = $psv->id;
$k++;
}
}
$property = $psv = $propertyStaticValuesCount = null;
$route = Route::findOne(['route' => 'shop/product/list']);
$urlTemplate = Json::decode($route->url_template);
foreach ($propertyValues as $propertyId => $values) {
$urlTemplate[] = ['class' => 'app\\properties\\url\\PropertyPart', 'property_id' => $propertyId];
}
$route->url_template = Json::encode($urlTemplate);
$route->save(false, ['url_template']);
$route = null;
$categories = ['Фотоаппараты', 'Телевизоры', 'Мультиварки', 'Музыкальные центры', 'Холодильники', 'Пылесосы', 'Телефоны', 'Планшеты', 'Соковыжималки', 'Электромясорубки', 'Блендеры', 'Аккустические системы', 'Вентиляторы', 'Кондиционеры'];
$category = \app\modules\shop\models\Category::findOne(['parent_id' => 0]);
$category->attributes = ['name' => 'Каталог', 'h1' => 'Каталог'];
$category->save();
srand();
$counter = 1;
foreach ($categories as $categoryName) {
$newCategory = new Category();
$newCategory->attributes = ['category_group_id' => 1, 'parent_id' => $category->id, 'name' => $categoryName, 'title' => 'Купить ' . mb_strtolower($categoryName, 'UTF-8') . ' в Москве и области', 'h1' => $categoryName, 'breadcrumbs_label' => $categoryName, 'slug' => Helper::createSlug($categoryName), 'announce' => '<p>Значимость этих проблем настолько очевидна, что рамки и место обучения кадров влечет за собой процесс внедрения и модернизации модели развития. Значимость этих проблем настолько очевидна, что укрепление и развитие структуры играет важную роль в формировании модели развития.</p>', 'content' => '<p>Таким образом рамки и место обучения кадров позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании системы обучения кадров, соответствует насущным потребностям. Таким образом начало повседневной работы по формированию позиции влечет за собой процесс внедрения и модернизации систем массового участия. Идейные соображения высшего порядка, а также реализация намеченных плановых заданий позволяет выполнять важные задания по разработке существенных финансовых и административных условий.</p>
<p>Товарищи! сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании систем массового участия. Разнообразный и богатый опыт постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Повседневная практика показывает, что укрепление и развитие структуры требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Товарищи! постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.</p>
<p>Товарищи! укрепление и развитие структуры требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения системы обучения кадров, соответствует насущным потребностям.</p>'];
$newCategory->save();
for ($i = 1; $i <= 16; $i++) {
$name = 'Товар #' . $counter;
$product = new Product();
$product->attributes = ['main_category_id' => $newCategory->id, 'name' => $name, 'title' => 'Купить ' . mb_strtolower($name, "UTF-8") . ' в Москве по превлекательной цене', 'slug' => Helper::createSlug($name), 'price' => rand(99, 999), 'announce' => '<p>Задача организации, в особенности же новая модель организационной деятельности в значительной степени обуславливает создание дальнейших направлений развития.</p>', 'content' => '<p>Повседневная практика показывает, что укрепление и развитие структуры способствует подготовки и реализации систем массового участия. Равным образом новая модель организационной деятельности обеспечивает широкому кругу (специалистов) участие в формировании модели развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки систем массового участия.</p>
示例8: actionMakeSlug
public function actionMakeSlug($word)
{
\Yii::$app->response->format = Response::FORMAT_JSON;
return Helper::createSlug($word);
}
示例9: up
public function up()
{
mb_internal_encoding(Yii::$app->getModule('core')->internalEncoding);
$data = (include __DIR__ . DIRECTORY_SEPARATOR . 'demo-data.php');
$productObject = Object::getForClass(Product::className());
/** @var PropertyHandler $handler */
$handler = PropertyHandler::findOne(['handler_class_name' => 'app\\properties\\handlers\\text\\TextProperty']);
if (!is_null($handler)) {
$this->textHandlerId = $handler->id;
}
$handler = PropertyHandler::findOne(['handler_class_name' => 'app\\properties\\handlers\\select\\SelectProperty']);
if (!is_null($handler)) {
$this->selectHandlerId = $handler->id;
}
$this->insert(PropertyGroup::tableName(), ['object_id' => $productObject->id, 'name' => 'Общая группа свойств']);
$commonGroupId = $this->db->lastInsertID;
$this->insert(Property::tableName(), ['property_group_id' => $commonGroupId, 'name' => 'Производитель', 'key' => 'vendor', 'property_handler_id' => $this->selectHandlerId, 'handler_additional_params' => '{}', 'has_static_values' => 1, 'has_slugs_in_values' => 1]);
$this->properties['vendor'] = $this->db->lastInsertID;
$staticProperties = ['Тип крепления бура', 'Макс. энергия удара', 'Количество скоростей работы', 'Питание', 'Тип процессора', 'Тип памяти', 'Частота памяти: 1600 МГц', 'Количество слотов памяти', 'Максимальный размер памяти', 'Размер экрана: 15.6 "', 'Тип экрана', 'Тип видеоадаптера'];
foreach ($data as $category) {
$this->insert(Category::tableName(), ['category_group_id' => 1, 'parent_id' => 1, 'name' => $category['name'], 'h1' => $category['name'], 'title' => $category['name'] . ' с доставкой в любой город России и СНГ', 'breadcrumbs_label' => $category['name'], 'slug' => Helper::createSlug($category['name']), 'announce' => $category['content'], 'content' => $category['content']]);
$categoryId = $this->db->lastInsertID;
$this->insert(PropertyGroup::tableName(), ['object_id' => $productObject->id, 'name' => $category['name']]);
$groupId = $this->db->lastInsertID;
foreach ($category['products'] as $product) {
// product
$slug = Helper::createSlug($product['name']);
if (isset($this->products[$slug])) {
$slug = mb_substr($slug, 0, 66) . '-' . uniqid();
}
$this->insert(Product::tableName(), ['parent_id' => 0, 'measure_id' => 1, 'currency_id' => 1, 'sku' => $product['id'], 'main_category_id' => $categoryId, 'name' => $product['name'], 'title' => $product['name'], 'breadcrumbs_label' => $product['name'], 'h1' => $product['name'], 'slug' => $slug, 'announce' => Helper::trimPlain($product['description']), 'content' => $product['description'], 'price' => $product['prices']['min'], 'old_price' => $product['prices']['max']]);
$productId = $this->db->lastInsertID;
$this->products[$slug] = $productId;
// categories
$this->batchInsert('{{%product_category}}', ['category_id', 'object_model_id'], [[1, $productId], [$categoryId, $productId]]);
// property groups
$this->batchInsert(ObjectPropertyGroup::tableName(), ['object_id', 'object_model_id', 'property_group_id'], [[$productObject->id, $productId, $commonGroupId], [$productObject->id, $productId, $groupId]]);
// properties
if (isset($product['vendor'])) {
$this->saveStatic($productId, 'vendor', $product['vendor']);
}
foreach ($product['details']['modelDetails'] as $group) {
foreach ($group['params'] as $property) {
$property['name'] = trim($property['name'], '/ ');
if (in_array($property['name'], $staticProperties)) {
$key = $this->getKey($property['name']);
if (!isset($this->properties[$key])) {
$this->insert(Property::tableName(), ['property_group_id' => $groupId, 'name' => $property['name'], 'key' => $key, 'property_handler_id' => $this->selectHandlerId, 'handler_additional_params' => '{}', 'has_static_values' => 1, 'has_slugs_in_values' => 1]);
$this->properties[$key] = $this->db->lastInsertID;
}
$this->saveStatic($productId, $this->getKey($property['name']), str_replace($property['name'] . ': ', '', $property['value']));
} else {
$this->saveEav($productId, $groupId, $property['name'], str_replace($property['name'] . ': ', '', $property['value']));
}
}
}
// images
$prodPhotos = [];
if (isset($product['photos'])) {
foreach ($product['photos'] as $photo) {
$prodPhotos[] = [$productObject->id, $productId, $photo['name'], $product['name'], $product['name']];
}
}
if (isset($product['mainPhoto']['name'])) {
$prodPhotos[] = [$productObject->id, $productId, $product['mainPhoto']['name'], $product['name'], $product['name']];
}
if (count($prodPhotos) > 0) {
$this->batchInsert(Image::tableName(), ['object_id', 'object_model_id', 'filename', 'image_alt', 'image_title'], $prodPhotos);
}
}
}
srand();
$cdnNumber = rand(1, 2);
$imgUrl = "http://static-{$cdnNumber}.dotplant.ru/demo-photos.zip";
$imagesPath = Yii::getAlias('@webroot/files/');
$imgsFile = $imagesPath . DIRECTORY_SEPARATOR . 'imgs.zip';
if (file_exists($imgsFile) === false) {
$fp = fopen($imgsFile, 'w+');
$ch = curl_init($imgUrl);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
echo "\n\nWow! You are running windows! Please unzip {$imgsFile} to {$imagesPath} \n\n";
} else {
passthru('/usr/bin/env unzip -n "' . $imgsFile . '" -d "' . $imagesPath . '"');
}
}
示例10: actionAddStaticValue
public function actionAddStaticValue($key, $value, $returnUrl, $objectId = null, $objectModelId = null)
{
$model = new PropertyStaticValues();
/** @var Property $property */
$property = Property::findOne(['key' => $key]);
if (is_null($property)) {
throw new NotFoundHttpException();
}
$model->property_id = $property->id;
if (Yii::$app->request->isPost) {
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$tags = [ActiveRecordHelper::getCommonTag(Property::className()), ActiveRecordHelper::getObjectTag(Property::className(), $property->id), ActiveRecordHelper::getCommonTag(PropertyGroup::className()), ActiveRecordHelper::getObjectTag(PropertyGroup::className(), $property->property_group_id)];
if (!is_null($objectId) && !is_null($objectModelId)) {
if ($property->multiple == 0) {
$propertyStaticValueIds = PropertyStaticValues::find()->select('id')->where(['property_id' => $property->id])->column();
ObjectStaticValues::deleteAll(['object_id' => $objectId, 'object_model_id' => $objectModelId, 'property_static_value_id' => $propertyStaticValueIds]);
}
$objectStaticValues = new ObjectStaticValues();
$objectStaticValues->attributes = ['object_id' => $objectId, 'object_model_id' => $objectModelId, 'property_static_value_id' => $model->id];
$objectStaticValues->save();
$tags[] = ActiveRecordHelper::getCommonTag(Object::findById($objectId)->object_class);
$tags[] = ActiveRecordHelper::getObjectTag(Object::findById($objectId)->object_class, $objectModelId);
}
TagDependency::invalidate(Yii::$app->cache, $tags);
return $this->redirect($returnUrl);
}
} elseif ($value !== "") {
$model->name = $value;
$model->value = $value;
$model->slug = Helper::createSlug($value);
$model->sort_order = 0;
}
return $this->renderAjax('ajax-static-value', ['model' => $model]);
}