Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Form Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

TableListField custom CSV not working?

Go to End

2 Posts   1762 Views


Community Member, 33 Posts

15 December 2009 at 12:37am

Edited: 15/12/2009 12:37am


I have amended the CMS form for one of my pages to include a TableListField.

This works fine, it shows the 4 columns I have asked it to show for the records in table ProgrammeLaunch.

However, it is ignoring my custom query that is set for the CSV export (ie on the form I show just 4 fields, but in the CSV export I want to see more fields, but only the 4 fields listed for the form view are being exported. Here is the code:

class ProgrammeLaunchPage extends Page
    static $db = array();

    function getCMSFields() {
        $fields = parent::getCMSFields();

        return $fields;

     * Returns the questionnaire answers as a TableListField
     * @return TableListField
    protected function getProgrammeLaunchAnswersAsTLF() {

        // Fields to display at the top level
        $fieldList = array(
            'AttendeeName'      => 'Name',
            'AttendeeJobTitle'  => 'Job Title',
            'AttendeeCompany'   => 'Company',
            'LastEdited'        => 'Submitted',

        $tf = new TableListField('Responses', 'ProgrammeLaunch', $fieldList);

        $tf->setFieldCasting(array('LastEdited' => 'Date->Nice'));

        // what is user allowed to do?
        $tf->setPermissions(array('show', 'export', 'delete', 'print'));  // export permission allows CSV exporting

        //Page navigation

        // CSV output def
        $customCsvQuery = new SQLQuery('*', 'ProgrammeLaunch', null, 'AttendeeName');


        return $tf;


If I uncomment the die statement, the SQL produced is valid: SELECT * FROM ProgrammeLaunch ORDER BY AttendeeName

What am I missing?

Many thanks for any help


Community Member, 33 Posts

15 December 2009 at 12:49am

Edited: 15/12/2009 1:40am

I've found a solution, although it does not provide an explanation for the above, so if anyone can explain why the above does not work, I'd be very grateful.

Solution is to use $tf->setFieldListCsv($csvFieldList); instead, where $csvFieldList is an array of field names => field descriptions