FreeCode.Academy
Стратегии обучения
Уроки
Технологии
Участники
Проекты
Топики
Блоги
О проекте
Войти
P
Ptaxa
Сортировка по нескольким значениям
Николай! я в отчаянии...
Удалось получить входные параметры, но не в методе
initialize, а в
prepareQueryBeforeQuery
Array
(
[
start
]
=>
0
[
limit
]
=>
15
[
sort
]
=>
modResource
.
menuindex
[
dir
]
=>
DESC
[
combo
]
=>
[
query
]
=>
[
cache
]
=>
[
cache_lifetime
]
=>
0
[
cache_prefix
]
=>
getdata
/
[
current
]
=>
[
page
]
=>
[
getPage
]
=>
1
[
getPageParamsSet
]
=>
getPage
[
includeTVs
]
=>
1
[
showhidden
]
=>
[
showunpublished
]
=>
[
summary
]
=>
[
makeLinks
]
=>
[
image_url_schema
]
=>
false
[
new1
]
=>
[
hot
]
=>
[
category_id
]
=>
6532
[
base_currency_id
]
=>
79
)
как я и писала ранее сортировка идет по менюИндекс, но в запросе на выходе это не видно:
.
.
.
AND
`
Product
`
.
`
sm_price
`
<>
'0'
AND
`
modResource
`
.
`
parent
`
IN
(
6532
)
)
ORDER
BY
FIELD
(
`
proizv
`
.
`
value
`
,
"Калитва"
,
"СКОВО"
)
ASC
Следуя Вашему совету, убрала сортировку в методе
prepareQueryBeforeCount
:
// $c->sortby('FIELD(`proizv`.`value`,"Калитва","СКОВО" ) ');
$this
->
unsetProperty
(
"sort"
)
;
$this
->
unsetProperty
(
"dir"
)
;
и добавила
public
function
prepareQueryAfterCount
(
xPDOQuery
$c
)
{
$c
->
sortby
(
'FIELD(`proizv`.`value`,"Калитва","СКОВО" ) Desc '
)
;
$c
->
prepare
(
)
;
print
'<div><pre>'
.
$c
->
toSQL
(
)
.
'</pre></div>'
;
return
$c
;
}
вот что получается :
.
.
AND
`
Product
`
.
`
sm_price
`
<>
'0'
AND
`
modResource
`
.
`
parent
`
IN
(
6532
)
)
ORDER
BY
FIELD
(
`
proizv
`
.
`
value
`
,
"Калитва"
,
"СКОВО"
)
Desc
ASC
это как понимать? почему
ASC
остается и просто дописывается
Desc
( и даже моим регистром)