У меня есть Post
модель, которая hasMany
PostField
в каждом сообщении может быть несколько полей, хранящихся в таблице post_fields
.
post_fields
имеет такую структуру: (id, post_id, name, value)
posts
таблица имеет некоторые общие поля для всех сообщений, но любые дополнительные поля должны храниться в post_fields
таблице ..
Я создал форму поиска, которая используется для фильтрации сообщений
при указании фильтров для полей в таблице posts
работает нормально ..
но я хочу, чтобы фильтр работал даже на других полях, найденных в post_fields
..
Я могу сначала получить сообщения, а затем отфильтровать их вручную, но я хочу что-то более эффективное!
ПРИМЕР : предположим, что сообщения описывают некоторые продукты ..
post (id, title, created, price)
post_fields (id, post_id, name, value)
в этом случае все сообщения имеют title
, created
и price
..
но если сообщение (id = 3) хочет иметь поле weight
, мы должны сделать это, создав запись в post_fields
, запись должна быть:
{ id: .. , post_id: 3, name: weight, value: .. }
теперь легко фильтровать сообщения по price
(например, цена между min
& max
) ..
но что делать, если я хочу фильтровать сообщения в соответствии с weight
??
например Я хочу, чтобы все сообщения с weight
больше 10 !!
Я бы хотел достичь этого предпочтительно одним запросом, используя соединения или, может быть, подзапросы.
Я не знаю, как это сделать в cakePHP, так что, если у кого-то есть идея, плз HELP !!
, даже если у кого-то есть идея, но нет деталей, это может помочь ...
Спасибо заранее!