ms2 msOption что-то пошло не так

Проблема с msOption если ключ начинается с цифры то получаем ошибку :)

if(!$opt = $modx->getObject('msOption',  array('key' => '135x205sm'))){
	$opt = $modx->newObject('msOption');
			  $opt->set('key', "135x205sm","string"); //стандарный сет имеет третий параметр - игнорируется.
			  $opt->set('caption',"TEST");
			  $opt->set('category',0);
			  $opt->set('type','textfield');		 
			
	if (!$opt->save()) {echo "ups";}  //упс :)
	else {echo "ok:".$opt->id; }
}
Мне кажется это всё-таки баг :)
Sergey Perepechin
28 марта 2017, 23:24
modx.pro
1
1 126
0

Комментарии: 2

Володя
29 марта 2017, 07:26
0
попробуйте прежде перед сохранением проверить валидность объекта
if (!$opt->validate()) {
    $validator = $opt->getValidator();
    print_r($validator->getMessages());
}
судя по этому github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L475
опции с таким ключем исключены.
    Sergey Perepechin
    29 марта 2017, 08:45
    0
    Спасибо, Володь.
    Да, я уже посмотрел, смущает тип самого поля key в базе varchar. по сути добавив "_" в началу ключа проблема становится исчерпана. Непонятна первопричинность такой конкретики с цифрами вначале. есть сомнения что они что-то ломают :) т.к. не зря же мы type указываем.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2