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

How to get the name corresponding to ID from other table?


4 Posts   886 Views


20 August 2011 at 8:04am Community Member, 56 Posts


I have a table which contains only ID's from other tables and some additional data. Now I read this table, and I find a record, for instance

1, 10, 13
2, 15, 26

Now this is found using DataObject::get('CallerName'); inside the SomePage_Controller class

Offcourse I want to display in my templatefile not these rows, but the corresponding names which are stored in other tables (for instance Member, Articles, ....). How can I achieve this? just can't solve this at the moment.

Thanks for you help,


20 August 2011 at 8:44am Forum Moderator, 1796 Posts

Hi Maurice,

something like this...

<% control CallerName %>

has_one member -

has_many Articles -
<% control Articles %>
<% end control %>

<% end control %>

more information in the tutorials and in the documentation about templates.



20 August 2011 at 10:11pm Community Member, 56 Posts

Thanks for your help, however I still do not get it working. Maybe I am referencing wrong. I will give some more details of the situation at hand:


class Profile extends Page {

class Profile_Controller extends Page_Controller {
function CurrentSubscriptions() {
   // s11s = s ubscription s
   $cMember = Member::currentUserID();
   $s11s = DataObject::get("DanceCouples","PartnerAID = {$cMember} OR PartnerBID = {$cMember}");
   return $s11s;


Than I have the following code that creates the Model for the couples of persons:

class DanceCouples extends DataObject {
static $db = array(
   'DansNiveau' => "Int"

// Een lid kan meerdere koppels vormen
static $has_one = array(
   'PartnerA' => 'DanceMemberInfo',
   'PartnerB' => 'DanceMemberInfo'

And the following Model for 'DanceMemberInfo':

class DanceMemberInfo extends Member {
static $db = array(
   'Voorletters' => 'Varchar',
   'Geslacht' => "Enum('m,v')",
   'Adres' => 'Varchar',
   'Postcode' => 'Varchar',
   'Plaats' => 'Varchar',
   'Telefoon' => 'Varchar',
   'XtraCardNr' => 'Varchar'

// Meerdere dansniveaus per lid toegestaan
static $has_many = array(
   'DanceCouples' => 'DanceCouples',

The IDs which 'DansNiveau' refers to are created here:

class DanceCourses extends DataObject {
static $db = array(
   'Name' => 'Varchar'

Is this a proper way of creating a model, so I can read all data to the template? How can I reference to it? I tried using the advanced-template reference of SS, but it did not help for me. Could you maybe give some suggestions?

Thanks a lot!

Ryan M.

21 August 2011 at 7:58am Community Member, 309 Posts

I think you forgot to add a has_one or has_many relationship from DanceCouples to DanceCourses.