Как сделать условие выборки для article.
Создал для быстрой вставки товаров в тело любой страницы, хочу чтобы не него можно было вносить назания товара (Артикль). Раньше было сделано по id ресурса через resources
вызов такой:
Артикли на кириллице
вызов такой:
{include 'file:chunks/blocks/pdo_project.tpl' $resources='212,207,197'}
Код чанка такой:{set $params = [
'depth' => '0',
'resources' => $resources,
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card.tpl',
'includeThumbs' => 'medium',
'limit' => 80,
'includeTVs' => 'price1,area',
'tvPrefix' => '',
'parents' => 0 ,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
{'!pdoPage' | snippet : $params}
</div>
Сейчас пытаюсь через where заменить 'resources' => $resources
на 'where'=> '{"article:IN":$articles}',
но ничего не работает. Артикли на кириллице
Комментарии: 19
А если так
'where' => ['article:IN' => $articles]
И ещё ты должен быть уверен в том, что в $articles массив, и среди $resources есть подходящие под условие в where. Ну и на мой взгляд, лучше параметр resources убрать.
Ошибка падает
[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 ''Сириус' AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 ) ' at line 1
Вызов такой:{include 'file:chunks/blocks/pdo_project.tpl' $articles='Сириус'}
ты должен быть уверен в том, что в $articles массив
сделал 2 артикля, результат тот же
Покажи.
{include 'file:chunks/blocks/pdo_project.tpl' $articles='Сириус,Удача'}
Ошибка[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 ''[Сириус,Удача]' AND `msProduct`.`published` = 1 AND `msProduct`.`del' at line 1
Вот так выглядит массив ['Сириус','Удача']
{include 'file:chunks/blocks/pdo_project.tpl' $articles=['Сириус','Удача']}
Падает ошибка[pdoTools] Error 42S22: Unknown column 'msProduct.article' in 'where clause'
showLog сделай
0.0002980: pdoTools loaded
0.0000529: Created inline "modChunk" with name "f7da63f2d337d08ca9dcacc531069c1e"
0.0020502: Loaded "modSnippet" with name "msProducts"
0.0079439: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
0.0103621: Total time
4 194 304: Memory usage
я правильно понимаю вызов внутри pdo_project.tpl?
{set $params = [
'ajaxMode' => 'default',
'depth' => '0',
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card.tpl',
'includeThumbs' => 'square',
'limit' => 6,
'includeTVs' => 'size,pro,price1,area',
'where' => ['article:IN' => $articles]
'tvPrefix' => '',
'parents' => 0,
'showLog' => 1,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
{'!pdoPage' | snippet : $params}
</div>
Это код расположен внутри чанка?
да
А ты уверен что там есть $articles, я не встречал такого способа передачи параметров как у тебя?
{include 'file:chunks/blocks/pdo_project.tpl' $resources='250,251'}
{set $params = [
'depth' => '0',
'resources' => $resources,
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card-project.tpl',
'includeThumbs' => 'medium',
'limit' => 80,
'includeTVs' => 'size,pro,price1,area,projectname',
'tvPrefix' => '',
'parents' => 0 ,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
{'!pdoPage' | snippet : $params}
</div>
Вот такой работает, я и хотел узнать как сделать чтобы можно было не айдишник искать, а по названию выводить
Попробуй прописать параметры напрямую без переменных
Пишет, что неизвестный столбец.
Data.article:IN
Так заработало, спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.