Ok,
I have almost cracked it! It turns out the wy to call $this->ID is to write it like this as we are in a dataobject; ".$this->owner->ID."
But there is a new problem, here is my code:
<?php
class FeaturedItemDropDown extends DataObjectDecorator{
function extraStatics() {
return array(
'db' => array(
'Summary' => 'Varchar(150)'
),
'has_one' => array(
'FeaturedImage' => 'Image'
),
);
}
function updateCMSFields(FieldSet &$fields) {
$fields->addFieldToTab('Root.Content.Featured', new TextareaField('Summary', 'Summary (150 characters max)', '', 200));
$fields->addFieldToTab('Root.Content.Featured', new ImageField('FeaturedImage', 'Upload your image (000 x 000)'));
}
public function RandomiseFeaturedItem($num = 1){
return DataObject::get("sitetree", "`ParentID` = ".$this->owner->ID." AND `Summary` != 'NULL'", "RAND()", "", $num);
}
}
The problem I have now is that the column 'Summary' in my database is ambiguous
[User Error] Couldn't run query: SELECT "SiteTree_Live"."ClassName", "SiteTree_Live"."Created", "SiteTree_Live"."LastEdited", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaTitle", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."MetaKeywords", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."HomepageForDomain", "SiteTree_Live"."ProvideComments", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."Status", "SiteTree_Live"."ReportClass", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."ToDo", "SiteTree_Live"."Version", "SiteTree_Live"."Summary", "SiteTree_Live"."ParentID", "SiteTree_Live"."FeaturedImageID", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."MasterPageID", CASE WHEN "SiteTree_Live"."ClassName" IN ('HomePage') THEN "HomePage_Live"."ExtraDropNavInfo" WHEN "SiteTree_Live"."ClassName" IN ('LibraryHolder') THEN "LibraryHolder_Live"."ExtraDropNavInfo" ELSE NULL END AS "ExtraDropNavInfo", CASE WHEN "SiteTree_Live"."ClassName" IN ('HomePage') THEN "HomePage_Live"."ExtraDropNavInfoClassName" WHEN "SiteTree_Live"."ClassName" IN ('LibraryHolder') THEN "LibraryHolder_Live"."ExtraDropNavInfoClassName" ELSE NULL END AS "ExtraDropNavInfoClassName", "Library_Live"."LibraryHolderID", "BlogEntry_Live"."Date", "BlogEntry_Live"."Author", "BlogEntry_Live"."Tags", "BlogTree_Live"."Name", "BlogTree_Live"."InheritSideBar", "BlogTree_Live"."LandingPageFreshness", "BlogTree_Live"."SideBarID", "Calendar_Live"."DefaultEventDisplay", "Calendar_Live"."DefaultDateHeader", "Calendar_Live"."OtherDatesCount", "CalendarEvent_Live"."Recursion", "CalendarEvent_Live"."CustomRecursionType", "CalendarEvent_Live"."DailyInterval", "CalendarEvent_Live"."WeeklyInterval", "CalendarEvent_Live"."MonthlyInterval", "CalendarEvent_Live"."MonthlyRecursionType1", "CalendarEvent_Live"."MonthlyRecursionType2", "CalendarEvent_Live"."MonthlyIndex", "CalendarEvent_Live"."MonthlyDayOfWeek", "CalendarEvent_Live"."CalendarID", CASE WHEN "SiteTree_Live"."ClassName" IN ('ContactPage') THEN "ContactPage_Live"."Mailto" WHEN "SiteTree_Live"."ClassName" IN ('RegistrationForm') THEN "RegistrationForm_Live"."Mailto" ELSE NULL END AS "Mailto", "ContactPage_Live"."ContactSubmitText", "RegistrationForm_Live"."SubmitText", "GridPage_Live"."Template", "ErrorPage_Live"."ErrorCode", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "VirtualPage_Live"."VersionID", "VirtualPage_Live"."CopyContentFromID", "BlogHolder_Live"."TrackBacksEnabled", "BlogHolder_Live"."AllowCustomAuthors", "BlogHolder_Live"."OwnerID", "SubsitesVirtualPage_Live"."CustomMetaTitle", "SubsitesVirtualPage_Live"."CustomMetaKeywords", "SubsitesVirtualPage_Live"."CustomMetaDescription", "SubsitesVirtualPage_Live"."CustomExtraMeta", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "HomePage_Live" ON "HomePage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "Library_Live" ON "Library_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "LibraryHolder_Live" ON "LibraryHolder_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "BlogEntry_Live" ON "BlogEntry_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "BlogTree_Live" ON "BlogTree_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "Calendar_Live" ON "Calendar_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "CalendarEvent_Live" ON "CalendarEvent_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ContactPage_Live" ON "ContactPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RegistrationForm_Live" ON "RegistrationForm_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "GridPage_Live" ON "GridPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "ErrorPage_Live" ON "ErrorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "VirtualPage_Live" ON "VirtualPage_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "BlogHolder_Live" ON "BlogHolder_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "SubsitesVirtualPage_Live" ON "SubsitesVirtualPage_Live"."ID" = "SiteTree_Live"."ID" WHERE (`ParentID` = 1 AND `Summary` != 'NULL') AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY RAND() LIMIT 1 Column 'Summary' in where clause is ambiguous
I have no idea what this could mean, I've searched the archives and forum and come across this problem but I'm none the wiser about what causes this, any ideas guys?
Regards