изменить ID

Добрый вечер!

$modx->controller->setProperty('id', '$id'');
не проканывает

хотелось бы услышать Василия, потому что советы типа «это невозможно» я уже читал на других форумах

с нетерпением жду ответа!
спасибо

23:09 UTC+3
Владимир
05 сентября 2015, 20:10
modx.pro
1
3 664
-2

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

Илья Уткин
06 сентября 2015, 00:49
0
Может, так
$modx->controller->setProperty('id', $id);
    Владимир
    06 сентября 2015, 01:05
    0
    а, нет, спасибо, Илъя, то я просто опечатался в тикете
    в коде у меня правильно, как вы и подсказали

    уже сделал частично вручную, меняя в текстовом редакторе полуавтоматом что надо

    Василий в отпуске
    Василий Наумкин
    06 сентября 2015, 07:00
    0
     Что ты пытаешься сделать? Пока ты просто добавляешь свойство в массив свойств, и ничего невозможного здесь нет:
    public function setProperty($key,$value) {
    	$this->scriptProperties[$key] = $value;
    }

    Если же нужно изменить id объекта внутри контроллера, то нужно к нему и обращаться. Должно быть что-то типа:
    $modx->controller->resource->set('id', $id);
    $modx->controller->resource->save();
    Правда, непонятно, зачем это может быть нужно.
      Владимир
      06 сентября 2015, 07:06
      -1
      спасибо!

      пытаюсь задать ID при создании документа в плагине на событии рендеринга формы документа

      попробую второй вариант.

      нужно это мне, затем
        Владимир
        06 сентября 2015, 17:55
        -1
        $modx->controller->resource->set('id', $id);
        $modx->controller->resource->save();
        срабатывает только на событии OnDocFormRender (сразу сохраняет ресурс с указанным в переменной ID, без титла даже и содержания, но — сохраняет)

        на событии OnDocFormSave — сохранение подвисает и не происходит ничего…
          Илья Уткин
          06 сентября 2015, 18:45
          0
          Потому что при вызове события OnDocFormSave controller'а просто нет
            Владимир
            06 сентября 2015, 18:48
            0
            и что делать?
              Илья Уткин
              06 сентября 2015, 18:49
              0
              Я не знаю. Я не понимаю, что вы пытаетесь делать
                Владимир
                06 сентября 2015, 18:54
                0
                пытаюсь сделать чтобы при сохранении документа в таблицу прописывало не порядковый номер ID, а тот который указан в плагине

                мне нужно не порядковые номера, просто нужно. сложно объяснить почему и зачем
                  Илья Уткин
                  06 сентября 2015, 19:11
                  0
                  Тогда должно работать как-то так
                  $modx->resource->set('id', $id);
                  $modx->resource->save();
                    Илья Уткин
                    06 сентября 2015, 19:12
                    0
                    Не, даже так
                    $resource->set('id', $id);
                    $resource->save();
                      Владимир
                      06 сентября 2015, 19:17
                      0
                      спасибо вам огромное!

                      второй вариант сработал на событии OnBeforeDocFormSave

                      вопрос закрыт.
        Володя
        06 сентября 2015, 19:15
        0
        <?php
        switch ($modx->event->name) {
        	case 'OnBeforeDocFormSave':
                	$resource->set('id', 555);
        		break;
        }
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        14