Доп. поле в minishop2 и значение по умолчанию как?
Каким образом задать значение по умолчанию для поля типа varchar?
модель
КАК? Что я делаю не так? Спасибо)))
модель
<?php
// Файл /core/components/minishop2/plugins/dimension/model/msproductdata.map.inc.php
return array(
'fields' => array(
'dimension' => 'test'
)
,'fieldMeta' => array(
'dimension' => array(
'dbtype' => 'varchar'
,'precision' => '350'
,'phptype' => 'string'
,'null' => true
,'default' => 'test'
)
)
);
miniShop2.plugin.dimension = {
getFields: function(config) {
return {
dimension: {xtype: 'textfield', description: _('ms2_product_dimension_help')}
}
}
,getColumns: function() {
return {
dimension: {width:50, sortable:false, editor: {xtype:'textfield', name: 'dimension'}}
}
}
};
в базе КАК? Что я делаю не так? Спасибо)))
Поблагодарить автора
Отправить деньги
Комментарии: 24
коммент для привлечения внимания…
Что не так?
По умолчанию не выставляется значение…
Структура менялась вручную? map вручную?
не совсем понимаю что вы имеете ввиду под структурой…
map да вручную.
map да вручную.
Поле в таблице
В таблице да сначало было по дефолту NULL…
вы намекаете что надо как то таблицу обновить?
вы намекаете что надо как то таблицу обновить?
Правильно ли я понял, у Вас в структуре таблицы не проставилось значение «Как определено»?
Оно и в таблице не проставляется и в админке пустое
Для админки
dimension: {
xtype: 'textfield',
hiddenValue: 'test' //либо просто value, если не сработает
description: _('ms2_product_dimension_help')
}
неа, вообще никаких изменений...(
Вру… просто value сработало.
Так пропиши в самой таблице БД.
И при отсутствии значения будет заполняться значением по умолчанию.
И при отсутствии значения будет заполняться значением по умолчанию.
прописывал!!! Тоже нет…
Посмотри столбец old_price в таблице *_ms2_products — заполняется 0.00 по умолчанию, если не указана старая цена для товара.
В админке всё отображается и в таблице тоже.
В админке всё отображается и в таблице тоже.
Цифровое поле да… это работает. Мне интересно текстовое поле…
Не уверен, но по моему значение по-умолчанию и не должно писаться в БД. Оно выводится при xPDOObject::toArray() и xPDOObject::get() — как у ТВ параметров.
А числовые поля в БД сохраняются согласен типу: если простой integer то будет 0, если float — то 0.00. Ну а для текста выходит пустая строка.
Сейчас нет ни времени, ни желания проверять, так что попробуй просто поэксперементировать с созданием и сохранением объекта товара без админки, на уровне xPDO.
А числовые поля в БД сохраняются согласен типу: если простой integer то будет 0, если float — то 0.00. Ну а для текста выходит пустая строка.
Сейчас нет ни времени, ни желания проверять, так что попробуй просто поэксперементировать с созданием и сохранением объекта товара без админки, на уровне xPDO.
Ок. спасибо… Вот ответа вроде этого я и ждал, ато даж разнервничался)))
Завтра попробую еще…
Завтра попробую еще…
Да если просто выполнить
$msProduct = $modx->newObject('msProduct');
$msProduct->set('pagetitle','xpdo');
$msProduct->save();
То значение поля по умолчанию подтягивается с модели и сохраняется…
Оно не подтягивается с модели — ты его сам выставляешь =)
ну я выставил только значение поля pagetitle, значени доп.поля у меня подтянулось с модели
,'default' => 'test'
или я не понял что ты этим сказать хотел)
А, ясно.
Тогда видимо при сохранении из админки это поле просто перезаписывается пустотой из отправленной формы.
Тогда видимо при сохранении из админки это поле просто перезаписывается пустотой из отправленной формы.
ДААА
Подскажите, пожалуйста. Я создал дополнительны поля по инструкции. Все работает хорошо. Но такой момент — у меня значения во всех полях и товарах одинаковые. Можно ли задать таким полям значения по умолчанию? как тогда нужно изменить плагин?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.