使用map设置两个字段

时间:2016-06-18 13:15:25

标签: silverstripe

在SilverStripe中,我想在map中使用DropdownField时返回两个字段。

我有一个数据对象Teacher,其中包含字段firstnamelastname。因此,在我的DropdownField中,我想合并这两个字段并将其传递给map()

我目前的代码如下:

 public function getCMSfields() {
        $fields = FieldList::create(TabSet::create('Root'));

        $fields->addFieldsToTab('Root.Main', array(
             DropdownField::create('TeacherID', 'Teacher')->setSource(Teacher::get()->map('ID', 'Firstname'))->setEmptyString('Select one')
        );

        // etc...
        return $fields;
    }

如何合并firstnamelastname并将其传递到map()并将其返回DropdownField

1 个答案:

答案 0 :(得分:9)

我们可以在自定义(function(){ 'use strict'; angular.module('myMenuApp.controllers') .controller('HomeCtrl', [ '$rootScope', '$log', '$state', '$timeout', '$location', 'menu', '$mdSidenav', '$mdUtil', function ($rootScope, $log, $state, $timeout, $location, menu, $mdSidenav, $mdUtil) { var vm = this; var aboutMeArr = ['Family', 'Location', 'Lifestyle']; var budgetArr = ['Housing', 'LivingExpenses', 'Healthcare', 'Travel']; var incomeArr = ['SocialSecurity', 'Savings', 'Pension', 'PartTimeJob']; var advancedArr = ['Assumptions', 'BudgetGraph', 'AccountBalanceGraph', 'IncomeBalanceGraph']; function isOpen(section) { return menu.isSectionSelected(section); }; function toggleOpen(section) { menu.toggleSelectSection(section); }; //handler to open/close a SideNav; when animation finishes report completion in console function buildToggler(navID) { return $mdUtil.debounce(function () { $mdSidenav(navID).toggle(); }, 300); }; //functions for menu-link and menu-toggle vm.isOpen = isOpen; vm.toggleOpen = toggleOpen; vm.autoFocusContent = false; vm.menu = menu; vm.status = { isFirstOpen: true, isFirstDisabled: false }; vm.toggleMenu = buildToggler('left'); }]) })(); 中创建get函数,以返回我们喜欢的任何内容。这些get函数可以在很多地方使用,包括DataObject函数。

以下是添加map函数以在对象中返回getFullName字符串的方法:

FullName

然后在我们的class Teacher extends DataObject { // ... public function getFullName() { return $this->FirstName . ' ' . $this->LastName; } } 中,我们可以像这样获取DropdownField

Teacher::get()->map('ID', 'FullName')