Silverstripe Version:
4.*
Question:
I’m trying to add a new unique integer field to member table. Alternatively a new table with 1-1 relation to member table. I need an extra userid field.
VsMember.php
class VsMember extends Member
{
private static $db = [
"vs_member_id" => "Int"
];
/* private static $has_one = [
'VsMember' => Member::class,
Member::class => VsMember::class
]; */
/* private static $belongs_to = [
'VsMember' => Member::class.'.ID'
]; */
/* public function updateCMSFields(FieldList $fields) {
$member = TextField::create('vs_member_id', 'VS Member', null, 4);
$fields->addFieldsToTab(
'Root.Main',
array($member)
);
} */
public function updateCMSFields(FieldList $fields)
{
$fields->addFieldToTab("Root.Main",
new TextField("VsMember", "VS Member")
);
}
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldsToTab('Root', [TextField::create('VsMember', 'Vs Member ID'),]);
}
So this creates a new table and “enum(‘SilverStripe\Security\Member’, ‘VsMember’)” in member.className. I would prefer to have an extra field in my member table.
As for the CMSfields I tried this example and it works. I don’t know how to set it on the member/add and member/edit tab
_config.yml
SilverStripe\Core\Injector\Injector:
SilverStripe\Security\Member:
Myvendor:
class: VsMember