ID добавленного ресурса
Прошу помочь. Вопрос следующий: как после добавления ресурса modx или записи в пользовательскую таблицу данных узнать id добавленной записи/ресурса?
Комментарии: 16
В шаблоне или чанке [[*id]]
в сниппете через api $modx->resource->get('id');
в сниппете через api $modx->resource->get('id');
А если это пользовательская таблица?
Код примерно следующий:
$dataobject = $modx->newObject($classname);
$dataobject->set($field, $value);
$dataobject->save();
В таблице автоинкремент поля id
Нет, если это пользовательская таблица это с этим сложнее…
Потому что нужно для неё создать схему xml и тогда данные таблицы попадут в объекты и потом их можно выбирать.
Через Ж. модх делает работу с пользовательскими таблицами одно скажу…
Покопайся в сторону тему MIGX DB.
Потому что нужно для неё создать схему xml и тогда данные таблицы попадут в объекты и потом их можно выбирать.
Через Ж. модх делает работу с пользовательскими таблицами одно скажу…
Покопайся в сторону тему MIGX DB.
Настолько через Ж, что лично я вообще не могу пользоваться чем-то кроме xPDO.
ilyaut.ru/xpdo/add-custom-objects/ — посмотри на этом сайте хорошие инструкции для работы с пользовательскими таблицами.
Существует функция xpdo::lastInsertId();, которую можно вызывать так
$modx->lastInsertId();
Но в твоем случае достаточно так...
$dataobject->save();
//1. Вариант
//определяем первичный ключ объекта
$pk= $dataobject->getPrimaryKey();
$id = $dataobject->get($pk);
//2. Вариант
//Можно непосредственно первичный ключ указать, например, "id"
$id = $dataobject->get('id');
$dataobject = $modx->newObject($classname);
$dataobject->set($field, $value);
$dataobject->save();
$id = $dataobject->get(''id);
что, не работает? get(''id);
Так пробовал уже. Не работает.
Вариант
Пустая переменная.
Вариант
$pk= $dataobject->getPrimaryKey();
$id = $dataobject->get($pk);
тоже.Пустая переменная.
а в вашей схеме есть pk?
Был ключ PRIMARY в схеме. Сейчас посмотрел нет его.
так добавьте
Всем спасибо за помощь. Так и не удалось заставить работать get(''id) и get(pk).
Конструкция
Конструкция
$modx->lastInsertId()
работает.
Еще вопрос возник.
Когда я делаю выборку из своей таблицы и перебор
В связи с вышеизложенным вопрос: как получить id?
В схеме созданной при помощи migx поле id отсутствует как и PrimaryKey.
Когда я делаю выборку из своей таблицы и перебор
$results = $modx->getCollection($classname, $where)
foreach($results as $key => $result)
то key не является id элемента, а просто набор цифр от 0.В связи с вышеизложенным вопрос: как получить id?
В схеме созданной при помощи migx поле id отсутствует как и PrimaryKey.
Должно работать так:
foreach($results as $key => $result) {
echo $result->get('id');
}
тут такие интересные вещи можно в сообществе накопать) это очень круто
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.