Передача плейсхолдера из плагина в pdoResources

Добрый день. Есть две кастомные таблицы автомобилей (1- марки, 2-модели+дополнительные данные), из которых вывожу Сначала марки, а потом уже модели этой марки. Есть плагин который срабатывает на событие — «OnPageNotFound», в котором я устанавливаю глобальный плейсхолдер carname
<?php
switch($modx->event->name) {
    case "OnPageNotFound":

        $alias = $modx->context->getOption('request_param_alias', 'q');

        $request = ($_REQUEST[$alias]);
        $tmp = explode('/', $request);

        if ($tmp[1] == 'remont-avto' && count($tmp) >= 2) {

            $carname = $tmp[2];
            $modx->setPlaceholder('carname', $carname);
            $modx->resource = $modx->getObject('modResource', 9);
            $modx->request->prepareResponse();
            exit;
        }
        die;
}
Пытаюсь вывести на странице с ID = 9
{$_modx->runSnippet('!pdoResources', [
    'loadModels' => 'auto',
    'class' => 'masModel',
    'leftJoin' => '{
        "car": {
            "class":"masCar",
            "on": "car.id = masModel.car_id"
        }
    }',
    'select' => '{
        "masModel": "title_model",
    }',
    'where' => '{"car.title":"[[+carname]]"}'
    'sortby' => 'title',

    'showLog' => 1
])}
То он ничего не выводит. Но если на странице просто вывести [[+carname]] то выводит отлично. И если в сниппете изменить 'where' => '{«car.title»:«Kia»}' то тоже срабатывает отлично.В чем может быть моя ошибка?

Ознакомился с документацией про теги fastField. Пробовал через суперглобальные массиы, но не помогло.

При этом лог одинаковый при обоих вариантах вызова, и при 'where' => '{«car.title»:"[[+carname]]"}' и при 'where' => '{«car.title»:«Kia»}'

0.0003560: Loaded model "auto" from "/core/components/auto/model/"
0.0007551: pdoTools loaded
0.0000291: xPDO query object created
0.0007801: leftJoined masCar as car
0.0001171: Added where condition: car.title=Kia
0.0000448: Sorted by title, DESC
0.0000029: Limited to 10, offset 0
0.0002601: SQL prepared "SELECT `masModel`.`id` AS `masModel_id`, `masModel`.`car_id` AS `masModel_car_id`, `masModel`.`title_model` AS `masModel_title_model`, `masModel`.`pr_spb` AS `masModel_pr_spb`, `masModel`.`pr_ptz` AS `masModel_pr_ptz` FROM `modx_mas_models` AS `masModel` LEFT JOIN `modx_mas_cars` `car` ON car.id = masModel.car_id WHERE `car`.`title` = 'Kia' ORDER BY title DESC LIMIT 10 "
0.0000820: SQL executed
0.0000861: Total rows: 1
0.0000119: Rows fetched
0.0000281: Returning processed chunks
0.0026929: Total time
4 194 304: Memory usage
ninzya.xy
08 декабря 2017, 14:23
modx.pro
1 186
0

Комментарии: 4

Игорь Терентьев
08 декабря 2017, 20:22
0
А если вот так попробовать:
'where' => '{"car.title":" ~ $_modx->getPlaceholder("carname") ~ "}'
    ninzya.xy
    08 декабря 2017, 20:50
    0
    Нет, так будто where вообще не срабатывает, выводит всё, без условия.
      Игорь Терентьев
      08 декабря 2017, 20:55
      1
      +1
      Кавычки забыл:
      'where' => '{"car.title":"' ~ $_modx->getPlaceholder("carname") ~ '"}'
        ninzya.xy
        08 декабря 2017, 21:12
        0
        А вот так просто идеально! Спасибо большое!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4