MODX 3 и migx
создал таблицу с помощью MIGX, создаются они там по новому
делаю вывод
делаю вывод
{$_modx->runSnippet('!pdoPage', [
'element' => 'getPayments',
'class' => 'HistoryPayment\Model\Payment',
'tpl' => '',
])}
getPayments<?php
$path = MODX_CORE_PATH . 'components/pdotools/model/pdotools/';
$pdoFetch = $modx->getService('pdofetch','pdoFetch', $path, $scriptProperties);
$pdoFetch->setConfig($scriptProperties);
return $pdoFetch->run();
показываетArray
(
[id] => 1
[user] => 1
[kurs] => 0
[idx] => 1
[link] =>
)
все норм, тепрб хочу пременить leftJoin{$_modx->runSnippet('!pdoPage', [
'element' => 'getPayments',
'class' => 'HistoryPayment\Model\Payment',
'tpl' => '',
'leftJoin' => '{
"Profile" : {
"class" : "modUserProfile",
"on" : "HistoryPayment\Model\Payment.user = Profile.id"
}
}'
'select' => '{
"HistoryPayment\Model\Payment": "*",
"Profile": "Profile.username as name"
}'
])}
итогArray
(
[Payment_id] => 1
[Payment_user] => 1
[Payment_kurs] => 0
[idx] => 1
[link] =>
)
Вопрос как джойнить чтобы вывелся username пользователя? Комментарии: 12
Как минимум не та колонка в джойн
github.com/modxcms/revolution/blob/73bfd2712427f46d9f32730b86f335fbe3296703/core/model/schema/modx.mysql.schema.xml#L1335
github.com/modxcms/revolution/blob/73bfd2712427f46d9f32730b86f335fbe3296703/core/model/schema/modx.mysql.schema.xml#L1335
изменил, все тоже самое, где еще может быть проблема?
{$_modx->runSnippet('!pdoPage', [
'element' => 'getPayments',
'class' => 'HistoryPayment\Model\Payment',
'tpl' => '',
'leftJoin' => '{
"Profile" : {
"class" : "modUserProfile",
"on" : "HistoryPayment\Model\Payment.user = Profile.internalKey"
}
}'
'select' => '{
"HistoryPayment\Model\Payment": "*",
"Profile": "Profile.fullname as name"
}'
])}
ShowLog в помощь.
а в fednom он не работает?
или где логи будут?
{$_modx->runSnippet('!pdoPage', [
'element' => 'getPayments',
'class' => 'HistoryPayment\Model\Payment',
'tpl' => '',
'leftJoin' => '{
"Profile" : {
"class" : "modUserProfile",
"on" : "HistoryPayment\Model\Payment.user = Profile.internalKey"
}
}'
'select' => '{
"HistoryPayment\Model\Payment": "*",
"Profile": "Profile.fullname as name"
}'
'showLog' => '1',
])}
не выводит лог на экранили где логи будут?
Тебе нужно добавить вывод логов в сниппет getPayments
Возьми любой сниппет из пакета minishop и посмотри как там вывод лога добавлен.
Возьми любой сниппет из пакета minishop и посмотри как там вывод лога добавлен.
переделал все, сделал в MIGX CheckPoint
запускаю
Array
(
[Check_id] => 1
[Check_master] => 12
[Check_date] => 2024-01-12
[Check_start] => 10:00:00
[Check_end] => 20:00:00
[Check_visitorId] => 121212121
[idx] => 1
[link] =>
)
Все ошибки по логам исправил, но поле fullname не берется
помогите пожалуйста
<?xml version="1.0" encoding="UTF-8"?>
<model package="CheckPoint\Model\" baseClass="xPDOObject" platform="mysql" defaultEngine="InnoDB" version="3.0">
<object class="Check" table="check_point" extends="xPDO\Om\xPDOSimpleObject">
<field key="master" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="true" />
<field key="date" dbtype="date" phptype="date" null="true" />
<field key="start" dbtype="time" phptype="string" null="false" />
<field key="end" dbtype="time" phptype="string" null="true" />
<field key="visitorId" dbtype="varchar" precision="255" phptype="string" null="true" />
</object>
</model>
в master хранится значение из Fax пользователязапускаю
[[!pdoPage?
&class=`CheckPoint\Model\Check`
&tpl=``
&element=`getChecks`
&leftJoin=`{
"CreatedBy": {
"class": "modUserProfile",
"on": "Check.master = CreatedBy.fax"
}
}`
&select=`{
"CheckPoint\Model\Check": "*",
"CreatedBy": "CreatedBy.fullname as name"
}`
&showLog =`1`
]]
[2024-02-08 02:02:12] (INFO @ /home/users/9/9516432741/domains/r.site.ru/core/cache/includes/elements/modx/revolution/modsnippet/32.include.cache.php: 15) Отладочный лог: Начало выполнения сниппета getChecks Нет отладочных логов.Array
(
[Check_id] => 1
[Check_master] => 12
[Check_date] => 2024-01-12
[Check_start] => 10:00:00
[Check_end] => 20:00:00
[Check_visitorId] => 121212121
[idx] => 1
[link] =>
)
Все ошибки по логам исправил, но поле fullname не берется
помогите пожалуйста
Думаю, в leftJoin так должно быть:
"on": "Check.master = CreatedBy.id"
Выражение в select должно быть корректной json строкой.
А что в select не так? не понимаю у меня в modx2 идентичный код стоит только class по старому записан и все работает
Спасибо огромное
&select=`{
"CheckPoint\\Model\\Check": "*",
"CreatedBy": "CreatedBy.fullname as name"
}`
Да пожалуйста. Будьте внимательней при написании кода и вопров будет меньше.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.