Использовать не первичный ключ, а RealURL id_field

На сайте TYPO3 6.2 у меня есть следующий файл postVarSetsin realurl_conf.php для расширения extbase:

     'postVarSets' => array(
        '_DEFAULT' => array(
            'wba' => array(
                array(
                    'GETvar' => 'tx_weiterbildung_pi1[item]' ,
                    'lookUpTable' => array(
                        'table' => 'tx_weiterbildung_domain_model_item',
                        'id_field' => 'uid',
                        'alias_field' => 'kurs_titel',
                        'addWhereClause' => ' AND NOT deleted',
                        'useUniqueCache' => 1,
                        'useUniqueCache_conf' => array(
                            'strtolower' => 1,
                            'spaceCharacter' => '-',
                        ),
                    ),
                ),
            ),
        ),
    ),

Это работает.

Поскольку данные в этой таблице импортированы с другого сайта, я понял, что во избежание путаницы мне нужно разрешить URL-адрес через другое поле (которое содержит исходный uid записи):

'id_field' => 'original_uid'

Но когда я это делаю, URL-адрес создается неправильно.

Итак: можно ли использовать неосновные поля как id_field в RealURL? Как?

Если нет, то какую стратегию вы бы порекомендовали?

При импорте (если extbase это позволяет) я также могу принудительно установить значение original_uid в uid, будет ли это плохой практикой? Или сделать original_uid первичным ключом, оставив AUTO_INCREMENT с uid?

РЕДАКТИРОВАТЬ: проблема была в другом, я забыл изменить шаблон списка, см. комментарии ниже.

Вместо

<f:link.page additionalParams="{tx_weiterbildung_pi1 :{item : item}}">

ссылка в шаблоне должна была получить замененный параметр:

<f:link.page additionalParams="{tx_weiterbildung_pi1 :{item : item.originalUid}}">


person Urs    schedule 25.02.2015    source источник
comment
«Но когда я это делаю, URL-адрес создается неправильно». что ты имеешь в виду ? если параметр tx_weiterbildung_pi1[item] использует значение original_uid для построения ссылки, проблем быть не должно... отключите RU на мгновение и проверьте, не использует ли он вместо этого uid.   -  person biesior    schedule 25.02.2015
comment
Ты сделал это! Я не следил за вашим рецептом на stackoverflow.com/questions/26142614/ при изменении значений. Пришлось изменить и ссылку в шаблоне списка: <f:link.page additionalParams="{tx_weiterbildung_pi1 :{item : item.originalUid}}">. Кроме того, используя ‹f:debug›, я смог увидеть, что мне нужно было передать это имя поля в верблюжьем регистре. Я думаю, это все!   -  person Urs    schedule 25.02.2015
comment
То, что я имел в виду под «неправильно построенный URL-адрес», было резервным поведением RealURL, он получил uid элемента из исходного шаблона (<f:link.page additionalParams="{tx_weiterbildung_pi1 :{item : item}}">), попытался сопоставить его с original_uid в БД, потерпел неудачу и вернулся к uid этого вещь.   -  person Urs    schedule 25.02.2015
comment
Ах, но я все еще получаю сообщение об ошибке.   -  person Urs    schedule 25.02.2015
comment
... Исключение при сопоставлении свойства по пути к свойству: объект с идентификатором 7064 не найден. Число — это значение, которое хранится в поле original_uid (тип INT в базе данных). Исключение указывает на wiki.typo3.org/Exception/CMS/1297759968, где в в двух сообщениях внизу что-то говорится о разрешении сопоставления этого свойства. @biesior, можешь мне объяснить, как это сделать? Или я неправильно написал аргумент для f:link.page? Сначала я попытался передать ему только {item.originalUid}, но потом он пожаловался, что ему нужен массив   -  person Urs    schedule 25.02.2015
comment
Extbase, кажется, получает правильное значение, хранящееся в original_uid, но все еще ищет его в столбце uid. Как я могу сказать ему проверить другой столбец? Похоже, это связано с review.typo3.org/#/c/2270.   -  person Urs    schedule 02.03.2015
comment
$this->myRepo->findByUid(GeneralUtility::_GET('myParam')); ? Теперь я AFK... Не забудьте intval() хотя бы для базовой проверки   -  person biesior    schedule 02.03.2015
comment
Звучит хорошо, но я как будто полностью заблокирован, извините! Я просто пока не понимаю, как эта штука должна работать. Вы знаете, страшный mvc .. :-) Я открыл еще один вопрос по адресу stackoverflow.com/questions/28819223/ с дополнительными примерами   -  person Urs    schedule 02.03.2015