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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

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

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

CsvBulkLoader question


Go to End


2 Posts   1544 Views

Avatar
JonShutt

Community Member, 244 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, 545 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.