Как заставить cakePHP извлекать данные, представленные внешним ключом? - PullRequest
4 голосов
/ 27 марта 2010

У меня есть простая база данных с несколькими таблицами. Я не могу понять, как заставить cakePHP отображать значения, связанные с внешним ключом, в представлении индекса. Или создайте представление, в котором поля по моему выбору (те, которые имеют смысл для пользователей, такие как имя местоположения, а не location_id, могут быть обновлены или просмотрены на одной странице).

Я создал пример на http://lovecats.cakeapp.com, который иллюстрирует вопрос. Если вы посмотрите на страницу и нажмете «список кошек», вы заметите, что она показывает поле location_id из таблицы местоположений. Вы также заметите, что когда вы нажимаете «добавить кошек», вы должны выбрать location_id из таблицы местоположений. Это автоматический способ, которым CakePHP создает приложение. Я хочу, чтобы это было поле location_name.

alt text

База данных настроена таким образом, что у таблицы cat есть внешний ключ с именем location_id, который имеет отношение к таблице с именем location.

Это моя проблема: я хочу, чтобы на этих страницах вместо location_id отображалось name_name. Если вы хотите войти в приложение, вы можете перейти по адресу http://cakeapp.com/sqldesigners/sql/lovecats и паролю «пароль», чтобы посмотреть взаимосвязи БД и т. Д.

Как у меня есть страница, которая показывает поля, которые я хочу? И возможно ли создать страницу, которая обновляет поля из всех таблиц одновременно?

Это кусочек торта, который я пытался выяснить, и это ДЕЙСТВИТЕЛЬНО помогло бы мне преодолеть горб. Вы можете скачать приложение и sql с вышеуказанного URL.

Ответы [ 2 ]

3 голосов
/ 28 марта 2010

Ха, вы правильно поняли! Cake использует переменную $ displayField, которая решает, что ... ну, отображать.

Если я правильно помню, по умолчанию торт ищет поля 'title' и 'name', а если эти два недоступны, он просто покажет поле вашего основного ключа. К счастью, вы можете изменить это так, как вы сами это поняли;)

1 голос
/ 16 апреля 2010

Полагаю, вам нужно отобразить $ cat ['Location'] ['location_name'] в вашем представлении.

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