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

Working through the book, Subscribers() problem


Go to End
Reply


2 Posts   1298 Views

Avatar
Phill

Community Member, 79 Posts

5 August 2010 at 4:45am

Hi

I'v started working my way through the Silverstripe book but i'm getting an error which i cant seem to solve.

The error happens when this method is called (page 154 of the book), it appear that it does not like $this->Subscribers()

function MemberIsSubscribed($member = null)
{
if(!$member) $member = Member::CurrentMember();
$idList = $this->Subscribers()->getIdList();
return in_array($member->ID,$idList);
return false;
}

Heres the error returned
[Warning] reset() expects parameter 1 to be array, null given
GET /ssbook/jobs/programming

Line 101 in C:\wamp\www\ssbook\sapphire\core\ClassInfo.php

Source

92 * Return the root data class for that class.
93 * This root table has a lot of special use in the DataObject system.
94 *
95 * @param mixed $class string of the classname or instance of the class
96 * @return array
97 */
98 static function baseDataClass($class) {
99 global $_ALL_CLASSES;
100 if (is_object($class)) $class = get_class($class);
101 reset($_ALL_CLASSES['parents'][$class]);
102 while($val = next($_ALL_CLASSES['parents'][$class])) {
103 if($val == 'DataObject') break;
104 }
105 $baseDataClass = next($_ALL_CLASSES['parents'][$class]);
106 return $baseDataClass ? $baseDataClass : $class;
107 }

any ideas on what might be causing this?

Thanks
Phil

Avatar
Phill

Community Member, 79 Posts

5 August 2010 at 4:54am

Sorry guys, I've solved the problem it was because i have written

static $many_many = array(
'Subscribers' => 'Members'
);

instead of

static $many_many = array(
'Subscribers' => 'Member'
);