Страница 1 из 1

не могу вручную установить свойство объекта

Добавлено: Чт окт 15, 2015 9:17 pm
Pacific
Есть несколько объектов одного класса.
Не могу в админке изменить свойства некоторых объектов. А в других объектах этого же класса легко изменяю те же свойства.
Когда у проблемного объекта ввожу новое значение свойства и нажимаю "обновить", то браузер выдает чистую страницу. Изредка на чистой странице выводится сообщение типа
Fatal error: Call to undefined function setProperty() in /var/www/modules/objects/objects.class.php(536) : eval()'d code on line 18
Полез в указанный файл:

Код: Выделить всё

    try {
       $success = eval($code); //строка 536
       if ($success === false) {
         getLogger($this)->error(sprintf('Error in "%s.%s" method. Code: %s', $this->object_title, $name, $code));
         registerError('method', sprintf('Exception in "%s.%s" method Code: %s', $this->object_title, $name, $code));
       }
     } catch (Exception $e) {
       getLogger($this)->error(sprintf('Exception in "%s.%s" method', $this->object_title, $name), $e);
       registerError('method', sprintf('Exception in "%s.%s" method '.$e->getMessage(), $this->object_title, $name));
     }
Мне, как чайнику это ничего не говорит. Помогите разобраться. Спасибо

Re: не могу вручную установить свойство объекта

Добавлено: Пт окт 16, 2015 8:55 am
nick7zmail
А у новых объектов этого же класса эти же свойства выставляются? Если нет - то возможно в базе у данных полей стоит какой-то определенный тип данных, а вы вводите другой тип. В любом случае стоит попробовать создать похожий объект в том же классе, и проверить. Если не выставится, то могу предложить воспользоваться другим классом.

Re: не могу вручную установить свойство объекта

Добавлено: Пт окт 16, 2015 12:58 pm
Pacific
nick7zmail писал(а):А у новых объектов этого же класса эти же свойства выставляются?
Спасибо, попробую вечером

Re: не могу вручную установить свойство объекта

Добавлено: Пт окт 16, 2015 7:13 pm
Pacific
nick7zmail писал(а):А у новых объектов этого же класса эти же свойства выставляются? Если нет - то возможно в базе у данных полей стоит какой-то определенный тип данных, а вы вводите другой тип. В любом случае стоит попробовать создать похожий объект в том же классе, и проверить. Если не выставится, то могу предложить воспользоваться другим классом.
Создал новый объект. Ввожу значение (единственный символ "1") свойства, нажимаю обновить - чистый экран, свойство не изменилось. Нажимаю обновить без изменения свойств - чистый экран.
nick7zmail писал(а): Если не выставится, то могу предложить воспользоваться другим классом.
Это созданный мной класс без предков. Что изменится, если я создам такой же класс и настрогаю такие же объекты?

Re: не могу вручную установить свойство объекта

Добавлено: Пт окт 16, 2015 7:34 pm
nick7zmail
Pacific писал(а):Что изменится, если я создам такой же класс и настрогаю такие же объекты?
Если класс создан вами - то конечно, ничего не изменится...
Не представляю в чем может быть проблема...
Проверьте - не привязан ли к свойству какой-нибудь метод, который очищает свойство...других соображений нет.
Можете попробовать еще на чистой системе создать те же классы и объекты. Если и там такое будет - единственное подозрение на имена классов/свойств. Но врят ли...

Re: не могу вручную установить свойство объекта

Добавлено: Пт окт 16, 2015 8:57 pm
Pacific
nick7zmail писал(а): Не представляю в чем может быть проблема...
Проверьте - не привязан ли к свойству какой-нибудь метод, который очищает свойство...других соображений нет.
Можете попробовать еще на чистой системе создать те же классы и объекты. Если и там такое будет - единственное подозрение на имена классов/свойств. Но врят ли...
Думаю, что корень проблемы всё-таки не в конкретном классе или объекте. Свойства объекта, недоступные для изменения вручную, легко изменяются программно. Видимо, ключ к решению в ошибке, которая вылазит иногда вместо чистого экрана
Fatal error: Call to undefined function setProperty() in /var/www/modules/objects/objects.class.php(536) : eval()'d code on line 18
Наверно, это уже вопрос к Сергею.

UPD Кстати, на определенном этапе я мог вручную изменять свойства проблемных объектов. А теперь не могу :(