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.

Data Model Questions /

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

pass a variable from a different table than SiteTree DB to JSON


Go to End


3 Posts   1644 Views

Avatar
joninjas

Community Member, 32 Posts

5 June 2010 at 4:08am

Hi all,

We did a nice implementation of flash with the Silverstripe backend. We're working on it, have a look:
http://krayersm.sites.hostmax.ch/projekte/

Everything works well, except that we can't pass on variables from other tables, just default fields from the SiteTree like $Title, $MenuTitle, $URLSegment...

The JSON output you can see from: http://krayersm.sites.hostmax.ch/projekt1/jsonausgabe
The variable 'Anzahl' just shows: Anzahl":null," which is not the data existing in this field.
Does anybody know why this variable is not being sent with JSON. We even can't access the $Ausgabe in a SS-file.

We'd be really glad to get a feedback.

yesmate!
Jonas

Avatar
Willr

Forum Moderator, 5523 Posts

6 June 2010 at 12:07pm

You have the following code

                'Anzahl' => $this->Anzahl,
                'DeltaX' => $this->DeltaX,
                'DeltaY' => $this->DeltaY,

$this->Field would look for the database field on ProjektPage or Page.php. Those fields aren't on ProjektPage so $this-> won't work. Your using a ComplexTableField to manage the objects - did you want to attach multiple Projekteintrag to the ProjektPage or just 1? If its just one then you need a relationship to map the object to the page

static $has_one = array('Projekteintrag' => 'Projektangaben');

Then your ComplexTableField needs to be changed to a HasOneComplexTableField and that code I posted first would be changed to look like

                'Anzahl' => $this->Projekteintrag()->Anzahl,
                'DeltaX' => $this->Projekteintrag()->DeltaX,
                'DeltaY' => $this->Projekteintrag()->DeltaY,

Avatar
joninjas

Community Member, 32 Posts

7 June 2010 at 9:42am

Hi Willr,

Thanks a lot for your reply. I changed the files according to your suggestion. Just the 'HasOneComplexTableField' I couldn't use otherwise the fields woudn't show in the backend after filling in the form... so I left it to ComplexTableField.

I had no errors, just the
http://krayersm.sites.hostmax.ch/projekt1/jsonausgabe
still shows:

"Anzahl":null,"DeltaX":null,"DeltaY":null,

...where it should show the value from the DB.
Could you imagine why?

I attached the two changed files (attention: all the 'projektangaben' I changed to 'projektangabe').

Thanks
Jonas