На сайте TYPO3 6.2 у меня есть следующий файл postVarSets
in 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}}">
tx_weiterbildung_pi1[item]
использует значениеoriginal_uid
для построения ссылки, проблем быть не должно... отключите RU на мгновение и проверьте, не использует ли он вместо этогоuid
. - person biesior   schedule 25.02.2015<f:link.page additionalParams="{tx_weiterbildung_pi1 :{item : item.originalUid}}">
. Кроме того, используя ‹f:debug›, я смог увидеть, что мне нужно было передать это имя поля в верблюжьем регистре. Я думаю, это все! - person Urs   schedule 25.02.2015<f:link.page additionalParams="{tx_weiterbildung_pi1 :{item : item}}">
), попытался сопоставить его с original_uid в БД, потерпел неудачу и вернулся к uid этого вещь. - person Urs   schedule 25.02.2015f:link.page
? Сначала я попытался передать ему только {item.originalUid}, но потом он пожаловался, что ему нужен массив - person Urs   schedule 25.02.2015original_uid
, но все еще ищет его в столбцеuid
. Как я могу сказать ему проверить другой столбец? Похоже, это связано с review.typo3.org/#/c/2270. - person Urs   schedule 02.03.2015$this->myRepo->findByUid(GeneralUtility::_GET('myParam'));
? Теперь я AFK... Не забудьтеintval()
хотя бы для базовой проверки - person biesior   schedule 02.03.2015