Тема: Как получить данные из таблицы pfx_users_log

Подскажите каким образом можно получить данные в шаблоне из таблицы pfx_users_log

Пробовал

{static_call var=DataLog callback=['\Catalog\Model\Orm\LogtypeAbstract', 'loadByWhere'] params=[['oid'=>{$tovID}]]}
{static_call var=DataLog callback=['\Catalog\Model\LogtypeAbstract', 'loadByWhere'] params=[['oid'=>{$tovID}]]}

{static_call var=DataLog callback=['\Users\Model\Orm\Log', 'loadByWhere'] params=[['oid'=>{$tovID}]]}

Первые два - ничего не возвращают.

Последний 503 ошибка.

Вероятно, нужно по-другому составить запрос.

Повысить оценку Понизить оценку

2 Отредактировано Закусило Александр (06.10.2022 20:25:03)

Re: Как получить данные из таблицы pfx_users_log

Андрей пишет:

Подскажите каким образом можно получить данные в шаблоне из таблицы pfx_users_log

Пробовал

{static_call var=DataLog callback=['\Catalog\Model\Orm\LogtypeAbstract', 'loadByWhere'] params=[['oid'=>{$tovID}]]}
{static_call var=DataLog callback=['\Catalog\Model\LogtypeAbstract', 'loadByWhere'] params=[['oid'=>{$tovID}]]}

{static_call var=DataLog callback=['\Users\Model\Orm\Log', 'loadByWhere'] params=[['oid'=>{$tovID}]]}

Первые два - ничего не возвращают.

Последний 503 ошибка.

Вероятно, нужно по-другому составить запрос.

Ну во первых включите отображение ошибок https://readyscript.ru/faq/#faq-errors и понять почему 503

Ну во вторых посмотрите, что у Вас в $tovID и попробуйте выполнить oid=значению $tovID. Может ничего и нет.

Плюс ко всему я так полагаю, что $tovId ко всем подойти не может, т.к. Вы строите запрос к разным таблицам. Каждому ORM объекту соответствует свой ORM объект.

3

Re: Как получить данные из таблицы pfx_users_log

Закусило Александр пишет:

Вероятно, нужно по-другому составить запрос.
Ну во первых включите отображение ошибок https://readyscript.ru/faq/#faq-errors и понять почему 503

Включал, но ничего не ясно из ошибки. Поэтому и обращаюсь.

Закусило Александр пишет:

Ну во вторых посмотрите, что у Вас в $tovID и попробуйте выполнить oid=значению $tovID. Может ничего и нет.

oid - это ID объекта в логе.
$tovID - это id товара.

В таблице однозначно есть oid со значением больше, чем какой-либо id товара. Проверял вручную.

Закусило Александр пишет:

Плюс ко всему я так полагаю, что $tovId ко всем подойти не может, т.к. Вы строите запрос к разным таблицам. Каждому ORM объекту соответствует свой ORM объект.

Понимаю, но никакого в принципе результата не появляется.

На данный момент решение задачи выполнено сторонним скриптом вне CMS. Но для развития хотелось бы понять в чём причина.



Далее для информации, если => тогда ничего, если =, тогда 503:

{assign var="tovID" value=51466}
{static_call var=CountSP callback=['\Catalog\Model\Orm\LogtypeAbstract', 'loadByWhere'] params=[['oid'={$tovID}]]}

Выходит:

Исключение - "Syntax error in template "rs:public_html/templates/newgo/moduleview/catalog/product.tpl" on line 288 "{static_call var=CountSP callback=['\Catalog\Model\Orm\LogtypeAbstract', 'loadByWhere'] params=[['oid'={$tovID}]]}" - Unexpected "=", expected one of: "","" , "]""
Код ошибки:    0
Тип ошибки:    SmartyCompilerException
Файл:    public_html/core/smarty/sysplugins/smarty_internal_templatecompilerbase.php
Строка:    288
Стек вызова:    

#0 public_html/core/smarty/sysplugins/smarty_internal_templateparser.php(2819): Smarty_Internal_TemplateCompilerBase->trigger_template_error()
#1 public_html/core/smarty/sysplugins/smarty_internal_templateparser.php(2880): Smarty_Internal_Templateparser->yy_syntax_error(15, '=')
#2 public_html/core/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(128): Smarty_Internal_Templateparser->doParse(15, '=')
#3 public_html/core/smarty/sysplugins/smarty_internal_templatecompilerbase.php(466): Smarty_Internal_SmartyTemplateCompiler->doCompile('{$canonical_url...', true)
#4 public_html/core/smarty/sysplugins/smarty_internal_templatecompilerbase.php(395): Smarty_Internal_TemplateCompilerBase->compileTemplateSource(Object(Smarty_Internal_Template), false, NULL)
#5 public_html/core/smarty/sysplugins/smarty_template_compiled.php(184): Smarty_Internal_TemplateCompilerBase->compileTemplate(Object(Smarty_Internal_Template))
#6 public_html/core/smarty/sysplugins/smarty_template_compiled.php(141): Smarty_Template_Compiled->compileTemplateSource(Object(Smarty_Internal_Template))
#7 public_html/core/smarty/sysplugins/smarty_template_compiled.php(105): Smarty_Template_Compiled->process(Object(Smarty_Internal_Template))
#8 public_html/core/smarty/sysplugins/smarty_internal_template.php(216): Smarty_Template_Compiled->render(Object(Smarty_Internal_Template))
#9 public_html/core/smarty/sysplugins/smarty_internal_templatebase.php(238): Smarty_Internal_Template->render(false, 0)
#10 public_html/core/smarty/sysplugins/smarty_internal_templatebase.php(116): Smarty_Internal_TemplateBase->_execute(Object(Smarty_Internal_Template), NULL, NULL, NULL, 0)
#11 public_html/core/rs/controller/result/standard.inc.php(264): Smarty_Internal_TemplateBase->fetch('product.tpl')
#12 public_html/core/rs/controller/result/standard.inc.php(291): RS\Controller\Result\Standard->getHtml()
#13 public_html/core/rs/controller/abstractcontroller.inc.php(175): RS\Controller\Result\Standard->getOutput()
#14 public_html/core/rs/controller/abstractclient.inc.php(82): RS\Controller\AbstractController->processResult(Object(RS\Controller\Result\Standard))
#15 public_html/core/rs/controller/abstractcontroller.inc.php(160): RS\Controller\AbstractClient->processResult(Object(RS\Controller\Result\Standard))
#16 public_html/core/rs/controller/abstractmodule.inc.php(278): RS\Controller\AbstractController->exec(false)
#17 public_html/core/rs/controller/front.inc.php(89): RS\Controller\AbstractModule->exec(false)
#18 public_html/core/rs/router/manager.inc.php(431): RS\Controller\Front->exec()
#19 public_html/core/rs/router/manager.inc.php(454): RS\Router\Manager->applyRoute(Object(RS\Router\Route))
#20 public_html/index.php(25): RS\Router\Manager->dispatch()
#21 {main}

Повысить оценку Понизить оценку

Re: Как получить данные из таблицы pfx_users_log

{static_call var=CountSP callback=['\Catalog\Model\Orm\LogtypeAbstract', 'loadByWhere'] params=[['oid'=$tovID]]}

Фигурные скобки у $tovID  уберите, они лишние.

5 Отредактировано Закусило Александр (07.10.2022 15:23:25)

Re: Как получить данные из таблицы pfx_users_log

Вернее будет
{static_call var=CountSP callback=['\Catalog\Model\Orm\LogtypeAbstract', 'loadByWhere'] params=[['oid'=>$tovID]]}". Т.е. у Вас там везде лишние скобки у {$tovID}

6 Отредактировано Закусило Александр (07.10.2022 15:26:34)

Re: Как получить данные из таблицы pfx_users_log

Кстати, а что это за ORM объекты странные \Catalog\Model\Orm\LogtypeAbstract их нет в системе по умолчанию?

Re: Как получить данные из таблицы pfx_users_log

Ну вообще, просто откройте loadByWhere функцию и посмотрите, что у Вас там внутри образуется. Т.е. нужно подебажить через var_dump. Я так думаю, что у Вас там, что-то не образуется.

8

Re: Как получить данные из таблицы pfx_users_log

Закусило Александр пишет:

Кстати, а что это за ORM объекты странные \Catalog\Model\Orm\LogtypeAbstract их нет в системе по умолчанию?


Реально обращаюсь сюда
\Users\Model\Orm\Log
Далее пробовал \Catalog\Model\Orm\LogtypeAbstract  путём эксперимента


Указал, как Вы скорректировали.



object(Users\Model\Orm\Log)#895 (5) {
  ["_values":protected]=>
  array(9) {
    ["id"]=>
    string(8) "81106711"
    ["site_id"]=>
    string(1) "1"
    ["dateof"]=>
    string(19) "2022-09-27 17:44:26"
    ["class"]=>
    string(33) "Catalog\Model\Logtype\ShowProduct"
    ["oid"]=>
    string(6) "124754"
    ["group"]=>
    string(6) "124754"
    ["user_id"]=>
    string(10) "-494552635"
    ["_serialized"]=>
    string(2) "N;"
    ["data"]=>
    NULL
  }
  ["_self_class":protected]=>
  string(19) "Users\Model\Orm\Log"
  ["_local_id":protected]=>
  int(304)
  ["cache_behavior_instances":"RS\Behavior\AcceptBehavior":private]=>
  array(0) {
  }
  ["instance_behaviors":"RS\Behavior\AcceptBehavior":private]=>
  array(0) {
  }
}



 
  

Как я понял, получается не все данные а только одно значение из таблицы. А как нужно подкорректровать, чтобы получить массив всех данных из таблицы?

Повысить оценку Понизить оценку

Re: Как получить данные из таблицы pfx_users_log

Ну там один, т.к. Вы используете метод loadByWhere в ORM, а он только один и выбирает, чтобы заполнить сам объект, который Вы вызываете.

Самый простой способ это Вызвать static_call к АПИ, и в нём сделать публичный статический метод. Т.е. нужно добавить АПИ класс с публичным статическим методом.