在自定义扩展中,我使用字段“ manager”扩展了fe_users表。此字段保留用户的老板。
现在,我要将父记录的字段“ tx_igldapssoauth_dn”(来自ext:ig_ldap_sso_auth)的值保存在“ manager”字段中,而不是“ uid”中。
我的模型如下:
<?php
namespace Vendor\Extension\Domain\Model;
class FrontendUser extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser
{
/**
* DN of the users manager
*
* @var Vendor\Extension\Domain\Model\FrontendUser
* @lazy
*/
protected $manager = '';
/**
* Returns the manager
*
* @return Vendor\Extension\Domain\Model\FrontendUser $manager
*/
public function getManager()
{
return $this->manager;
}
/**
* Sets the manager
*
* @param Vendor\Extension\Domain\Model\FrontendUser $manager
* @return void
*/
public function setManager($manager)
{
$this->manager = $manager;
}
}
TCA:
'manager' => [
'exclude' => true,
'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_db.xlf:tx_myext_feusers_users.manager',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'fe_users',
],
],
这很好,并向我返回了父记录。但是这会将父记录的“ uid”保存在“ manager”列中,而不是字段“ tx_igldapssoauth_dn”的值中保存。
那么为了将“ tx_igldapssoauth_dn”的值保存在“ manager”字段而不是“ uid”字段中,需要进行哪些配置或更改?
编辑(更多详细信息)
字段“ manager”的值由LDAP(它是父用户,老板的DN)和“ tx_igldapssoauth_dn”(用户本身的DN)填充。因此,“ tx_igldapssoauth_dn”是唯一值,可以与条目的uid进行比较。
我的问题不是没有将所需的值保存到字段“ manager”,而是将字段“ manger”与字段“ tx_igldapssoauth_dn”连接起来。
因此,如果记录上的字段“ manager”拥有值CN=Firstname Lastname,OU=Department,DC=example,DC=net
,则它应连接到字段“ tx_igldapssoauth_dn”中具有相同值(CN=Firstname Lastname,OU=Department,DC=example,DC=net
)的记录。
答案 0 :(得分:1)
我认为这样映射是不明智的。因为tx_igldapssoauth_dn
不是唯一键-uid
是唯一键。使用fe_users.uid
值时没有问题。
您可以使用此uid获取fe_user对象,然后从那里获取所需的值。
您可以使用类似以下的内容:
[...]
$yourFrontendUser->getManager()->getTheValueYouWant();
[...]