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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

CsvBulkLoader question


Reply


2 Posts   660 Views

Avatar
Futureweb

Community Member, 233 Posts

11 April 2012 at 11:00am

Hi,

I have a load of surveys, in excel, with 2 columns, question, answer.
I'm importing this info using the CsvBulkLoader in model admin.

it imports the individual items (surveyItems) ok, but what I want to do is create a relationship with 'Surveys' and 'SurveyItems'

Two options as far as I can see:

Either a kind 'onBeforeImportCSV' function that create the Survey item, then attaches this ID to each item.

Or, like in the 'Security Area', create a group (or in this case Survey), then there is an 'import' tab on the screen.

Does anyone have any ideas for how to implement either of these two options?
Cheers

Avatar
zenmonkey

Community Member, 532 Posts

12 April 2012 at 1:54am

You can create custom relationship call backs to create relations with other DataObjects. I often use it to automatically locate and add images when importing product data. SilverStripe is clever in that it will automatically create new relationship items

http://doc.silverstripe.org/sapphire/en/howto/csv-import

You will need to to populate your table with both the SurveyItem data and the SurveyData and use dot notation to to map your columns to the right table.

One caveat, if multiple Surveys have SurveyItems with the same field you're using for a duplicate check it may make more sense to import into Survey and have the bulk loader create the SurveyItem.