2014-09-10 3 views
0

При обновлении записи в базе данных я получаю сообщение об ошибке «неизвестный столбец« newTags ».Joomla 3 Unknown column 'newTags'

Обновление представляет собой классическую процедуру сохранения и обновления в Joomlas Backend. Раньше я выбирал элемент в списке для редактирования, после чего я сохраняю элемент в виде редактирования. Одинаковая разница ко всем моим другим моделям/таблицам заключается в том, что у этого есть столбец, называемый «тегами».

При обновлении записи система пытается обновить все столбцы с правильными значениями. Но в конце система помещает новый столбец с именем «newTags» в оператор update и пытается вставить те же значения, что и в моей колонке «tags». Здесь процедура обновления завершается с ошибкой «неизвестный столбец« newTags ». Это было бы правильно, потому что нет столбца «newTags».

Что здесь происходит?

Обновление к этому сообщению: Joomla проверяет ваш массив данных, прежде чем он свяжет массив для сохранения. Унаследованная модель администратора проверяет, есть ли столбец с названием «теги», а когда есть столбец с именем «теги», он добавляет столбец «newTags» в таблицу $ и заполняет его значениями столбца «теги». Вы можете найти его в/библиотеки/унаследованной/модели/администратора по линии 1059:

if ((!empty($data['tags']) && $data['tags'][0] != '')) 
     { 
      $table->newTags = $data['tags']; 
     } 

Так почему же Joomla добавить новый столбец «newTags» в TableItem, в то время как это будет впоследствии привести к ошибке, потому что она невозможно сохранить этот новый «виртуальный» столбец?

+0

Позвольте мне угадать, Joomla 3.1? – rockinfresh

+0

Joomla Version 3.3.3 – Perino

ответ

0

Перейти к следующему каталогу: «administrator \ components \ com_componentname», есть ли каталог с именем «tables», откройте его.

Найти файл, связанный с таблицей (обычно это одно и то же имя).

Открыть файл php и проверить Если вместо «тегов» есть свойство «newTags».

+0

Нет, нет свойства с именем «newTags» – Perino

+0

Какое имя компонента? Я думаю, что вам нужно будет отладить модель этого компонента. – MOWebCreation

+0

это настраиваемый компонент. Я уже пытался отладить эту проблему. Но я не могу найти, когда система собирается добавить новый столбец при обновлении существующей записи базы данных. Похоже, произошли изменения в Joomla 3.1 и его новых тегах. – Perino

0

В вашем определении формы, если у вас есть поле тега, как показано ниже, вы увидите эту ошибку.

<field 
    name="tags" 
    type="tag" 
    labelclass="control-label" 
    label="JTAG" 
    description="JTAG_DESC" 
    class="inputbox span12 small" 
    custom="deny" 
    multiple="false" 
    mode="nested" 
/> 

Проблема кратна = "ложь", которая вызывает $ table-> newTags быть установлен в /libraries/model/legacy/admin.php в строке 1059:

if ((!empty($data['tags']) && $data['tags'][0] != '')) 
{ 
    $table->newTags = $data['tags']; 
} 

Решение: В определение поля установлено multiple = "true", поэтому $ data ['tags'] передается как массив, и поэтому поле не связано напрямую или не может быть интерпретировано как столбец. Это устраняет проблему, но не помогает, если вы хотите ограничить выбор одним тегом.

 Смежные вопросы

  • Нет связанных вопросов^_^