Ошибка при вызове pdoTools
Василий, приветствую. Пост к тебе. При вызове pdoTools и getTickets получаю такие ошибки в логе. Это один из вызовов proTools и getTickets (понимаю, что он несколько кривой, но сама суть получаемых ошибок настораживает):
Заранее благодарен.
[[!pdoPage?
&loadModels=`getTickets`
&nestedChunkPrefix=`tickets_`
&element=`getTickets`
&groupby=`parent`
&having=`5`
&tpl=`tpl.Tickets.list.proza.main.row`
&showHidden=`1`
&parents=`0`
&sortby=``
&sortdir=`ASC`
&context=`proza`
&limit=`20`
&showLog=`1`
]]
Лог ошибок:[2017-01-06 02:49:20] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 237) PHP warning: Invalid argument supplied for foreach()
[2017-01-06 02:49:20] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Ticket.id ASC LIMIT 20' at line 1
[2017-01-06 02:49:20] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package ticketmeta is not a valid or accessible directory: /***/core/components/ticketmeta/model/
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package ticketmeta is not a valid or accessible directory: /***/core/components/ticketmeta/model/
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package ticketmeta is not a valid or accessible directory: /***/core/components/ticketmeta/model/
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 643) Could not load class: msOption from mysql.msoption.
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 761) msOption::load() is not a valid static method.
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package ticketmeta is not a valid or accessible directory: /***/core/components/ticketmeta/model/
[2017-01-06 02:49:31] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package ticketmeta is not a valid or accessible directory: /***/core/components/ticketmeta/model/
[2017-01-06 02:49:41] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:49:41] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:49:41] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:49:41] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:49:41] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 945) Recoverable error: Argument 1 passed to pdoFetch::replaceTVCondition() must be of the type array, string given, called in /***/core/components/pdotools/model/pdotools/pdofetch.class.php on line 233 and defined
[2017-01-06 02:49:41] (ERROR @ /***/core/xpdo/om/xpdoquery.class.php : 688) Error parsing condition with key 0: 5
[2017-01-06 02:49:41] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 237) PHP warning: Invalid argument supplied for foreach()
[2017-01-06 02:49:41] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Ticket.id ASC LIMIT 20' at line 1
[2017-01-06 02:49:41] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:53:03] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:53:03] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:53:03] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:53:03] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
[2017-01-06 02:53:03] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 945) Recoverable error: Argument 1 passed to pdoFetch::replaceTVCondition() must be of the type array, string given, called in /***/core/components/pdotools/model/pdotools/pdofetch.class.php on line 233 and defined
[2017-01-06 02:53:03] (ERROR @ /***/core/xpdo/om/xpdoquery.class.php : 688) Error parsing condition with key 0: 5
[2017-01-06 02:53:03] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 237) PHP warning: Invalid argument supplied for foreach()
[2017-01-06 02:53:03] (ERROR @ /***/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Ticket.id ASC LIMIT 20' at line 1
[2017-01-06 02:53:03] (ERROR @ /***/core/xpdo/xpdo.class.php : 502) Path specified for package gettickets is not a valid or accessible directory: /***/core/components/gettickets/model/
Если в них нет ничего «страшного», извини и убираем пост. Заранее благодарен.
Комментарии: 11
Вот прям новость и событие, да? Нужно было мне сразу же на мобильный позвонить.
&loadModels=`getTickets`
Это убери.
Спасибо. А ошибки про мускул с чем связаны?
С кривыми вызовами в других местах.
Ну или в pdoTools есть несколько ошибок, которые больше никто в логах не видит. Какой вариант более вероятен?
Ну или в pdoTools есть несколько ошибок, которые больше никто в логах не видит. Какой вариант более вероятен?
Ошибки генерит этот вызов:
Все остальные отключил. Может быть никто не пробует группировать по ID родителя? Поэтому не видит ошибок?
[[!pdoPage?
&nestedChunkPrefix=`tickets_`
&element=`getTickets`
&groupby=`parent`
&having=`5`
&tpl=`tpl.Tickets.list.proza.main.row`
&showHidden=`1`
&parents=`0`
&sortby=``
&sortdir=`ASC`
&context=`proza`
&limit=`0`
&showLog=`1`
]]
[[!+page.nav]]
Все остальные отключил. Может быть никто не пробует группировать по ID родителя? Поэтому не видит ошибок?
[2017-01-06 15:47:37] (ERROR @ /var/www/pishi.pro/www/core/components/pdotools/model/pdotools/pdofetch.class.php : 945) Recoverable error: Argument 1 passed to pdoFetch::replaceTVCondition() must be of the type array, string given, called in /var/www/pishi.pro/www/core/components/pdotools/model/pdotools/pdofetch.class.php on line 233 and defined
[2017-01-06 15:47:37] (ERROR @ /var/www/pishi.pro/www/core/xpdo/om/xpdoquery.class.php : 688) Error parsing condition with key 0: 5
[2017-01-06 15:47:37] (ERROR @ /var/www/pishi.pro/www/core/components/pdotools/model/pdotools/pdofetch.class.php : 237) PHP warning: Invalid argument supplied for foreach()
[2017-01-06 15:47:37] (ERROR @ /var/www/pishi.pro/www/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Ticket.id ASC' at line 1
Ты вообще видишь в этом вызове какие-то упоминания ТВ параметров?
Однако, в логе у тебя именно что pdoFetch::replaceTVCondition() must be of the type array, string given.
Если бы ошибка была в этом вызове — ты видел бы её под ним, так как &showLog=`1`. Ты же копируешь системный журнал.
Просто включи логику и вдумчиво поищи проблему без помощи других. Это даёт массу опыта.
Однако, в логе у тебя именно что pdoFetch::replaceTVCondition() must be of the type array, string given.
Если бы ошибка была в этом вызове — ты видел бы её под ним, так как &showLog=`1`. Ты же копируешь системный журнал.
Просто включи логику и вдумчиво поищи проблему без помощи других. Это даёт массу опыта.
Вот копия &showLog
0.0002460: Query parameters are prepared.
0.0000370: xPDO query object created
0.0002151: leftJoined TicketsSection as Section
0.0001669: leftJoined modUser as User
0.0001462: leftJoined modUserProfile as Profile
0.0007679: leftJoined TicketTotal as Total
0.0000021: Grouped by parent
0.0001140: Added selection of TicketsSection: SQL_CALC_FOUND_ROWS `id` AS `section.id`, `type` AS `section.type`, `contentType` AS `section.contentType`, `pagetitle` AS `section.pagetitle`, `longtitle` AS `section.longtitle`, `description` AS `section.description`, `alias` AS `section.alias`, `link_attributes` AS `section.link_attributes`, `published` AS `section.published`, `pub_date` AS `section.pub_date`, `unpub_date` AS `section.unpub_date`, `parent` AS `section.parent`, `isfolder` AS `section.isfolder`, `introtext` AS `section.introtext`, `richtext` AS `section.richtext`, `template` AS `section.template`, `menuindex` AS `section.menuindex`, `searchable` AS `section.searchable`, `cacheable` AS `section.cacheable`, `createdby` AS `section.createdby`, `createdon` AS `section.createdon`, `editedby` AS `section.editedby`, `editedon` AS `section.editedon`, `deleted` AS `section.deleted`, `deletedon` AS `section.deletedon`, `deletedby` AS `section.deletedby`, `publishedon` AS `section.publishedon`, `publishedby` AS `section.publishedby`, `menutitle` AS `section.menutitle`, `donthit` AS `section.donthit`, `privateweb` AS `section.privateweb`, `privatemgr` AS `section.privatemgr`, `content_dispo` AS `section.content_dispo`, `hidemenu` AS `section.hidemenu`, `class_key` AS `section.class_key`, `context_key` AS `section.context_key`, `content_type` AS `section.content_type`, `uri` AS `section.uri`, `uri_override` AS `section.uri_override`, `hide_children_in_tree` AS `section.hide_children_in_tree`, `show_in_tree` AS `section.show_in_tree`, `properties` AS `section.properties`
0.0000150: Added selection of modUser: `username`
0.0000291: Added selection of modUserProfile: `internalKey`, `fullname`, `email`, `phone`, `mobilephone`, `blocked`, `blockeduntil`, `blockedafter`, `logincount`, `lastlogin`, `thislogin`, `failedlogincount`, `sessionid`, `dob`, `gender`, `address`, `country`, `city`, `state`, `zip`, `fax`, `photo`, `comment`, `website`, `extended`
0.0000401: Added selection of Ticket: `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0001049: Added selection of TicketTotal: `comments`, `views`, `stars`, `rating`, `rating_plus`, `rating_minus`
0.0000300: Processed additional conditions
0.0002840: Added where condition: class_key=Ticket, Ticket.published=1, Ticket.deleted=0, Ticket.context_key=proza
0.0005121: Added having condition:
0.0000710: Sorted by Ticket.id, ASC
0.0005348: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `Section`.`id` AS `section.id`, `Section`.`type` AS `section.type`, `Section`.`contentType` AS `section.contentType`, `Section`.`pagetitle` AS `section.pagetitle`, `Section`.`longtitle` AS `section.longtitle`, `Section`.`description` AS `section.description`, `Section`.`alias` AS `section.alias`, `Section`.`link_attributes` AS `section.link_attributes`, `Section`.`published` AS `section.published`, `Section`.`pub_date` AS `section.pub_date`, `Section`.`unpub_date` AS `section.unpub_date`, `Section`.`parent` AS `section.parent`, `Section`.`isfolder` AS `section.isfolder`, `Section`.`introtext` AS `section.introtext`, `Section`.`richtext` AS `section.richtext`, `Section`.`template` AS `section.template`, `Section`.`menuindex` AS `section.menuindex`, `Section`.`searchable` AS `section.searchable`, `Section`.`cacheable` AS `section.cacheable`, `Section`.`createdby` AS `section.createdby`, `Section`.`createdon` AS `section.createdon`, `Section`.`editedby` AS `section.editedby`, `Section`.`editedon` AS `section.editedon`, `Section`.`deleted` AS `section.deleted`, `Section`.`deletedon` AS `section.deletedon`, `Section`.`deletedby` AS `section.deletedby`, `Section`.`publishedon` AS `section.publishedon`, `Section`.`publishedby` AS `section.publishedby`, `Section`.`menutitle` AS `section.menutitle`, `Section`.`donthit` AS `section.donthit`, `Section`.`privateweb` AS `section.privateweb`, `Section`.`privatemgr` AS `section.privatemgr`, `Section`.`content_dispo` AS `section.content_dispo`, `Section`.`hidemenu` AS `section.hidemenu`, `Section`.`class_key` AS `section.class_key`, `Section`.`context_key` AS `section.context_key`, `Section`.`content_type` AS `section.content_type`, `Section`.`uri` AS `section.uri`, `Section`.`uri_override` AS `section.uri_override`, `Section`.`hide_children_in_tree` AS `section.hide_children_in_tree`, `Section`.`show_in_tree` AS `section.show_in_tree`, `Section`.`properties` AS `section.properties`, `User`.`username`, `Profile`.`internalKey`, `Profile`.`fullname`, `Profile`.`email`, `Profile`.`phone`, `Profile`.`mobilephone`, `Profile`.`blocked`, `Profile`.`blockeduntil`, `Profile`.`blockedafter`, `Profile`.`logincount`, `Profile`.`lastlogin`, `Profile`.`thislogin`, `Profile`.`failedlogincount`, `Profile`.`sessionid`, `Profile`.`dob`, `Profile`.`gender`, `Profile`.`address`, `Profile`.`country`, `Profile`.`city`, `Profile`.`state`, `Profile`.`zip`, `Profile`.`fax`, `Profile`.`photo`, `Profile`.`comment`, `Profile`.`website`, `Profile`.`extended`, `Ticket`.`id`, `Ticket`.`type`, `Ticket`.`contentType`, `Ticket`.`pagetitle`, `Ticket`.`longtitle`, `Ticket`.`description`, `Ticket`.`alias`, `Ticket`.`link_attributes`, `Ticket`.`published`, `Ticket`.`pub_date`, `Ticket`.`unpub_date`, `Ticket`.`parent`, `Ticket`.`isfolder`, `Ticket`.`introtext`, `Ticket`.`richtext`, `Ticket`.`template`, `Ticket`.`menuindex`, `Ticket`.`searchable`, `Ticket`.`cacheable`, `Ticket`.`createdby`, `Ticket`.`createdon`, `Ticket`.`editedby`, `Ticket`.`editedon`, `Ticket`.`deleted`, `Ticket`.`deletedon`, `Ticket`.`deletedby`, `Ticket`.`publishedon`, `Ticket`.`publishedby`, `Ticket`.`menutitle`, `Ticket`.`donthit`, `Ticket`.`privateweb`, `Ticket`.`privatemgr`, `Ticket`.`content_dispo`, `Ticket`.`hidemenu`, `Ticket`.`class_key`, `Ticket`.`context_key`, `Ticket`.`content_type`, `Ticket`.`uri`, `Ticket`.`uri_override`, `Ticket`.`hide_children_in_tree`, `Ticket`.`show_in_tree`, `Ticket`.`properties`, `Total`.`comments`, `Total`.`views`, `Total`.`stars`, `Total`.`rating`, `Total`.`rating_plus`, `Total`.`rating_minus` FROM `modx_site_content` AS `Ticket` LEFT JOIN `modx_site_content` `Section` ON `Section`.`id` = `Ticket`.`parent` LEFT JOIN `modx_users` `User` ON `User`.`id` = `Ticket`.`createdby` LEFT JOIN `modx_user_attributes` `Profile` ON `Profile`.`internalKey` = `User`.`id` LEFT JOIN `modx_tickets_totals` `Total` ON `Ticket`.`id` = `Total`.`id` WHERE ( `Ticket`.`class_key` = 'Ticket' AND `Ticket`.`published` = 1 AND `Ticket`.`deleted` = 0 AND `Ticket`.`context_key` = 'proza' ) GROUP BY parent HAVING ORDER BY Ticket.id ASC "
0.0004361: Could not process query, error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Ticket.id ASC' at line 1
0.0000110: Returning processed chunks
0.0059268: Total time
6 815 744: Memory usage
У тебя нет, случайно, ощущения, что проблема где-то здесь?
В общем, ты сам ни логи читать не хочешь, ни думать. Поэтому и я займусь своими делами, а тебе желаю удачи.
&having=`5`
В общем, ты сам ни логи читать не хочешь, ни думать. Поэтому и я займусь своими делами, а тебе желаю удачи.
Василий, ты главное, знай, что у меня нет задачи как-то тебя задеть или вывести из себя. Я просто хочу понять, в чем ошибка. И всегда готов общаться.
Это из документации:
Так как не нашел примера, я не понял как использовать. Это не про количественное ограничение в каждой группировке?
&having Используется, чтобы ограничить выборку сгруппированных строк с помощью условия, относящегося ко всей группе, заданной в &groupby
Так как не нашел примера, я не понял как использовать. Это не про количественное ограничение в каждой группировке?
И вот эта:
/***/core/components/pdotools/model/pdotools/pdofetch.class.php : 945) Recoverable error: Argument 1 passed to pdoFetch::replaceTVCondition() must be of the type array, string given, called in /***/core/components/pdotools/model/pdotools/pdofetch.class.php on line 233 and defined
Версия mysql 5.7?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.