cakephp 1.3: отображение идентификатора строки вместо значения строки, пожалуйста, помогите - PullRequest
0 голосов
/ 12 октября 2010

Я использую cakephp 1.3, у меня небольшая проблема, пожалуйста, помогите

У меня есть 2 таблицы в моей базе данных Профили и квалификации, Профили принадлежат квалификации и квалификации имеет много профилей. квалификация display_field установлен на 'qualification', я использовал торт, испечь все для создания CRUD, когда я пытаюсь добавить профиль, я получаю значения из поля квалификации в выпадающем списке (вместо id), но при просмотре все профили, список с указанием идентификатора квалификации вместо значений в квалификации, я хотел бы просмотреть значение квалификации вместо идентификатора первичного ключа квалификации в списке,

Я могу изменить значение из файла представления, но я хотел бы знать, есть ли способ автоматически отображать значения без изменения файла представления индекса для профилей

Большое спасибо, ребята

Ответы [ 3 ]

2 голосов
/ 12 октября 2010

Cake должен обрабатывать свойство displayField в модели, в то время как выпечка и выполнение быстрого теста с моего локального компьютера показывает, что он работает должным образом.

Читая ваш первоначальный вопрос, вы устанавливаете $ Model-> display_field вместо $ Model-> displayField.

Обратите внимание на camelCase в имени свойства.

<?php
    class Qualification extends AppModel
    {
        ...
        public $display_field = 'qualification';
        ...
        // when it should be
        ...
        public $displayField = 'qualification';
?>

Дайте мне знать, если это решит проблему. Вам не нужно ввертывать индексы в запеченных файлах. Особенно, если вы используете bake для создания одного контроллера за раз, и все модели уже выпечены или готовы к использованию.

1 голос
/ 12 октября 2010

, что обычно происходит с выпечкой торта "все"

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

У меня тоже была эта проблема, и я решил ее таким образом (возможно, ошибка, но у меня не было времени углубиться в это глубже).

кстати:также важно, чтобы ваш рекурсивный уровень был> 0, чтобы это работало!У меня обычно есть -1 в модели приложения (как значение по умолчанию)

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

0 голосов
/ 12 октября 2010

Я так не думаю.

Это просто простая модификация: зайдите в ваш файл profile / index.ctp и измените:

$profile['Profile']['qualification_id'];

до

$profile['Qualification']['qualification'];

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

Тем не менее, вы должны помнить, что Bake только даст вам основы, поэтому вам не нужно писать самый простой код, но некоторые изменения почти всегда необходимы.

...