Данные заказа с использованием значений, хранящихся в другой таблице - PullRequest
1 голос
/ 03 сентября 2010

Я уже некоторое время использую CakePHP, но пока не изучил все тонкости, поэтому я могу упустить что-то простое.Или проблема может быть связана с моей структурой базы данных.В любом случае, если кто-нибудь имеет представление о том, что я делаю не так, пожалуйста, поделитесь.

Есть ли способ упорядочить данные, возвращаемые функцией findphp, используя значения, хранящиеся в другой таблице?

Я создаю настраиваемые поля формы для каждой категории, поэтому, когда я выбираю определенную категорию для публикации, настраиваемые поля будут добавлены в мою форму.У меня есть 3 таблицы: сообщения, поля и ответы.Таблица Posts хранит основную статическую информацию для поста, такую ​​как id, category_id, title и description.В таблице «Поля» хранятся данные настраиваемого поля, такие как category_id, field_label, размер поля и т. Д. В таблице «Ответы» хранятся значения, которые вводятся для определенных полей, например post_id, field_id, value.

Я пытаюсьотображать сообщения для определенной категории и создавать заголовки HTML-таблиц на лету, используя поля выбора, установленные переключателем столбца в таблице полей, а также выбирать ответы, связанные с этим конкретным полем и публикацией.

Я могу выбрать все данные, которые хочу, и разбить все на страницы, но я не могу понять, как упорядочить данные, используя одно из значений динамического столбца.Например, если у меня есть год, марка и модель как 3 пользовательских поля, я бы хотел щелкнуть столбец года, чтобы отсортировать результаты по значениям года, и если я щелкну столбец make, я бы отсортировал результаты позначения make и т. д.

Я знаю, как упорядочить результаты по определенному полю в таблице сообщений, например, по идентификатору или заголовку, но можно ли заказать с помощью настраиваемых полей?Я настраиваю базу данных и / или что-то еще не так, и если нет, то есть какой-то конкретный метод cakephp или команда sql, которые мне нужно использовать для сортировки по настраиваемым полям?Я не очень хорошо разбираюсь в сложных командах sql.

Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2010

Я бы посоветовал вам передать имя поля и направление сортировки в URL (параметр GET).Поэтому, когда у вас есть ссылка на заголовок таблицы, создайте ее так, чтобы она ссылалась на URL-адрес следующим образом:

http://somesite.com/pages/index/sort:customfield1/dir:asc

Затем, когда вы получаете данные из базы данных в своей находке(), включите именованные параметры в качестве параметра заказа, который можно отправить для поиска.

Вам потребуется определить столбец сортировки по умолчанию и направление.Возможно, это должно быть выбрано с помощью логического поля в схеме - если нет параметров, отправленных вышеупомянутому действию, извлеките поле из другой таблицы, для которой в записи по умолчанию установлено значение true.

Чтобы уточнить: когда пользователь посещает данное действие, сначала вы извлекаете пользовательские поля из другой таблицы.Затем, используя эти поля (по умолчанию, как указано выше, или именованные параметры, переданные в URL), сформируйте запрос для фактических данных, используя параметр заказа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...