Не работает leftJoin в pdoTools
Василий, привет!
Сейчас впервые начал работать с pdoTools и вот какая загвоздка — упорно не хотят джойниться таблицы, которые указаны в &leftJoin=``.
Т.е. я взял сниппет из коробки example.pdoFetch, вызвал его вот так:
Лог выдал вот это:
Т.е. всё, что джойнилось через leftJoin — не присоединилось, а вот тэвэха — пожалуйста.
И getTickets не работает, потому что тоже не джойнит таблицы. Даже и не знаю, что и делать…
Помоги, пожалуйста, разобраться.
pdoTools последней 1.2.1 версии, код сниппета example.pdoFetch (его тоже не менял, привожу на всякий случай):
Сейчас впервые начал работать с pdoTools и вот какая загвоздка — упорно не хотят джойниться таблицы, которые указаны в &leftJoin=``.
Т.е. я взял сниппет из коробки example.pdoFetch, вызвал его вот так:
[[!example.pdoFetch?
&class=`modResource`
&where=`{"published":1,"deleted":0}`
&includeTVs=`price`
&tpl=`myTpl`
&return=`chunks`
&sortby=`id, hidemenu`
&leftJoin=`{"modResource":{"alias":"Parent","on":"Parent.id=modResource.parent"},"modUser":{"alias":"User","on":"User.id=modResource.createdby"},"modUserProfile":{"alias":"Profile","on":"Profile.internalKey=modResource.createdby"}}`
]]
Все параметры скопировал из параметров сниппета по умолчанию, даже не менял ничего. Хотя всё проверил, косяков в синтаксисе json-параметров нет.Лог выдал вот это:
0.0001390: xPDO query object created
0.0007818: Added where condition: published=1, deleted=0
0.0089972: Included list of tvs: price.
0.0006070: leftJoined Parent as Parent
0.0004580: leftJoined User as User
0.0004430: leftJoined Profile as Profile
0.0008440: leftJoined modTemplateVarResource as TVprice
0.0005548: Added selection of modResource: SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`
0.0000381: Added selection of Parent: Parent.pagetitle as parent_pagetitle, Parent.uri as parent_uri
0.0000310: Added selection of User: username
0.0000319: Added selection of Profile: fullname, email
0.0000291: Added selection of TVprice: `TVprice`.`value` as `price`
0.0000229: Sorted by id, hidemenu, DESC. Limited to 10, offset 0
0.0006239: SQL prepared «SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties`, Parent.pagetitle as parent_pagetitle, Parent.uri as parent_uri, `username`, `fullname`, `email`, `TVprice`.`value` as `price` FROM `modx_do_dbsite_content` AS `modResource` LEFT JOIN `modx_do_dbsite_tmplvar_contentvalues` `TVprice` ON TVprice.contentid=modResource.id AND TVprice.tmplvarid=3 WHERE ( `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY id, hidemenu DESC LIMIT 10 „
0.0136017: Total time
Т.е. всё, что джойнилось через leftJoin — не присоединилось, а вот тэвэха — пожалуйста.
И getTickets не работает, потому что тоже не джойнит таблицы. Даже и не знаю, что и делать…
Помоги, пожалуйста, разобраться.
pdoTools последней 1.2.1 версии, код сниппета example.pdoFetch (его тоже не менял, привожу на всякий случай):
<?php
/**
* The base pdoTools snippet.
*
* @var pdoFetch $pdoFetch
* @package pdotools
*/
$pdoFetch = $modx->getService('pdofetch','pdoFetch',$modx->getOption('pdotools.core_path',null,$modx->getOption('core_path').'components/pdotools/').'model/pdotools/',$scriptProperties);
if (!($pdoFetch instanceof pdoFetch)) {return '';}
$pdoFetch->setConfig($scriptProperties);
$output = $pdoFetch->run();
if ($modx->user->hasSessionContext('mgr')) {
$output .= print_r($pdoFetch->getTime(), 1);
}
return $output;
Комментарии: 6
Опа, вёрстка споткнулась об закрывающий /pre
Ты по старому пишешь, так нельзя. нужно
{"class":"modResource","alias":"Parent","on":"Parent.id=modResource.parent"}
Опа, вёрстка споткнулась об закрывающий /preНу так отредактируй и убери его.
Спасибо, заработало!
Блин, а вот getTickets так и не заводится :-(
Чанк рабочий (через этот же чанк example.pdoFetch свои результаты выводил)…
Уже блин и так, и сяк параметры набирал — без толку.
Где я мог опять накосячить?
Блин, а вот getTickets так и не заводится :-(
[[!getTickets?
&tpl=`tpl.Tickets.list.row`
&return=`chunks`
&showUnpublished=`1`
&showLog=`1`
&parents=`6`
&includeContent=`1`
&showHidden=`1`
]]
Если запрос из лога выполнить в базу напрямую, то выдача есть, а на странице, в месте вызова сниппета, ничего, кроме лога, не выводит.Чанк рабочий (через этот же чанк example.pdoFetch свои результаты выводил)…
Уже блин и так, и сяк параметры набирал — без толку.
Где я мог опять накосячить?
Убери &return=`chunks`
Ну Алёёёша, ну балбееес!
Спасибо огромное, Василий! Просто преогромное :-)
Спасибо огромное, Василий! Просто преогромное :-)
Да на здоровье!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.