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.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

Problem with DOM PopUp Display [solved]


Reply


3 Posts   853 Views

Avatar
Hello_electro

Community Member, 80 Posts

28 January 2011 at 9:15am

Hi Everyone.

I am having a peculiar error that I cant seem to locate the issue. I am simply creating a DOM to display news articles. I have successfully created the page and added articles within the CMS. The problem is when I click on the edit button for one of the items, i get an error message about a query issue.

I tried to just start all the way in the begining and use a working example from uncle Cheese's Testimonial code. Still no progress.

I am pasting my code below, along with the error. Maybe I am missing something small, or this is something larger?

Here is the NewsArticlePage code

<?php
class DPSNewsArticlePage extends Page
{
   static $has_many = array (
      'DPSNewsArticles' => 'DPSNewsArticle'
   );
   
   public function getCMSFields()
   {
      $f = parent::getCMSFields();
      $manager = new DataObjectManager(
         $this, // Controller
         'DPSNewsArticles', // Source name
         'DPSNewsArticle', // Source class
         array('Date' => 'Date', 'Author' => 'Author', 'Quote' => 'Quote'), // Headings
         'getCMSFields_forPopup' // Detail fields function or FieldSet
         // Filter clause
         // Sort clause
         // Join clause
      );
      
      
      $f->addFieldToTab("Root.Content.Articles", $manager);
      
      return $f;
   }

}
class DPSNewsArticlePage_Controller extends Page_Controller
{
}
?>


DPS News Article code

<?php
class DPSNewsArticle extends DataObject
{
   static $db = array (
      'Date' => 'Date',
      'Author' => 'Text',
      'Quote' => 'Text'
   );
   
   static $has_one = array (
      'DPSNewsArticlePage' => 'DPSNewsArticle'
   );
   
   public function getCMSFields_forPopup()
   {
      return new FieldSet(
         new DatePickerField('Date'),
         new TextField('Author'),
         new TextareaField('Quote')
      );
   }
}
?>

Error Message

User Error] Couldn't run query: SELECT "DPSNewsArticle"."ClassName", "DPSNewsArticle"."Created", "DPSNewsArticle"."LastEdited", "DPSNewsArticle"."Date", "DPSNewsArticle"."Author", "DPSNewsArticle"."Quote", "DPSNewsArticle"."DPSNewsArticlePageID", "DPSNewsArticle"."ID", CASE WHEN "DPSNewsArticle"."ClassName" IS NOT NULL THEN "DPSNewsArticle"."ClassName" ELSE 'DPSNewsArticle' END AS "RecordClassName" FROM "DPSNewsArticle" WHERE ("ParentID" = '214') Unknown column 'ParentID' in 'where clause'
GET /publicsafety/admin/EditForm/field/DPSNewsArticles/item/2/edit?SecurityID=2c5824d7f11f37de6195cc76ba911620d6261ded&ctf[DPSNewsArticles][start]=0&ctf[DPSNewsArticles][per_page]=10&ctf[DPSNewsArticles][showall]=0&ctf[DPSNewsArticles][sort]=&ctf[DPSNewsArticles][sort_dir]=&ctf[DPSNewsArticles][search]=&ctf[DPSNewsArticles][filter]=

Line 525 in /usr/local/ftp/publicsafety/html/sapphire/core/model/MySQLDatabase.php
Source

516    }
517    
518    function databaseError($msg, $errorLevel = E_USER_ERROR) {
519       // try to extract and format query
520       if(preg_match('/Couldn\'t run query: ([^\|]*)\|\s*(.*)/', $msg, $matches)) {
521          $formatter = new SQLFormatter();
522          $msg = "Couldn't run query: \n" . $formatter->formatPlain($matches[1]) . "\n\n" . $matches[2];
523       }
524       
525       user_error($msg, $errorLevel);
526    }
527    
528    /**
529     * Return a boolean type-formatted string
530     *
531     * @param array $values Contains a tokenised list of info about this data type

Trace

* Couldn't run query: SELECT "DPSNewsArticle"."ClassName", "DPSNewsArticle"."Created", "DPSNewsArticle"."LastEdited", "DPSNewsArticle"."Date", "DPSNewsArticle"."Author", "DPSNewsArticle"."Quote", "DPSNewsArticle"."DPSNewsArticlePageID", "DPSNewsArticle"."ID", CASE WHEN "DPSNewsArticle"."ClassName" IS NOT NULL THEN "DPSNewsArticle"."ClassName" ELSE 'DPSNewsArticle' END AS "RecordClassName" FROM "DPSNewsArticle" WHERE ("ParentID" = '214') Unknown column 'ParentID' in 'where clause'
Line 525 of MySQLDatabase.php
* MySQLDatabase->databaseError(Couldn't run query: SELECT "DPSNewsArticle"."ClassName", "DPSNewsArticle"."Created", "DPSNewsArticle"."LastEdited", "DPSNewsArticle"."Date", "DPSNewsArticle"."Author", "DPSNewsArticle"."Quote", "DPSNewsArticle"."DPSNewsArticlePageID", "DPSNewsArticle"."ID", CASE WHEN "DPSNewsArticle"."ClassName" IS NOT NULL THEN "DPSNewsArticle"."ClassName" ELSE 'DPSNewsArticle' END AS "RecordClassName" FROM "DPSNewsArticle" WHERE ("ParentID" = '214') | Unknown column 'ParentID' in 'where clause',256)
Line 123 of MySQLDatabase.php
* MySQLDatabase->query(SELECT "DPSNewsArticle"."ClassName", "DPSNewsArticle"."Created", "DPSNewsArticle"."LastEdited", "DPSNewsArticle"."Date", "DPSNewsArticle"."Author", "DPSNewsArticle"."Quote", "DPSNewsArticle"."DPSNewsArticlePageID", "DPSNewsArticle"."ID", CASE WHEN "DPSNewsArticle"."ClassName" IS NOT NULL THEN "DPSNewsArticle"."ClassName" ELSE 'DPSNewsArticle' END AS "RecordClassName" FROM "DPSNewsArticle" WHERE ("ParentID" = '214'),256)
Line 129 of DB.php
* DB::query(SELECT "DPSNewsArticle"."ClassName", "DPSNewsArticle"."Created", "DPSNewsArticle"."LastEdited", "DPSNewsArticle"."Date", "DPSNewsArticle"."Author", "DPSNewsArticle"."Quote", "DPSNewsArticle"."DPSNewsArticlePageID", "DPSNewsArticle"."ID", CASE WHEN "DPSNewsArticle"."ClassName" IS NOT NULL THEN "DPSNewsArticle"."ClassName" ELSE 'DPSNewsArticle' END AS "RecordClassName" FROM "DPSNewsArticle" WHERE ("ParentID" = '214'),256)
Line 400 of SQLQuery.php
* SQLQuery->execute()
Line 1268 of DataObject.php
* DataObject->getComponents(DPSNewsArticles)
Line 532 of ComplexTableField.php
* ComplexTableField->getFieldsFor(DPSNewsArticle)
Line 792 of ComplexTableField.php
* ComplexTableField_ItemRequest->DetailForm()
Line 931 of DataObjectManager.php
* DataObjectManager_ItemRequest->DetailForm()
Line 369 of ViewableData.php
* ViewableData->obj(DetailForm,,1)
Line 32 of .cache.dataobject_manager.templates.DataObjectManager_popup.ss
* include(/usr/local/ftp/publicsafety/html/silverstripe-cache/.cache.dataobject_manager.templates.DataObjectManager_popup.ss)
Line 420 of SSViewer.php
* SSViewer->process(DataObjectManager_ItemRequest)
Line 342 of ViewableData.php
* ViewableData->renderWith(DataObjectManager_popup)
Line 948 of DataObjectManager.php
* DataObjectManager_ItemRequest->edit(SS_HTTPRequest)
Line 143 of RequestHandler.php
* RequestHandler->handleRequest(SS_HTTPRequest)
Line 161 of RequestHandler.php
* RequestHandler->handleRequest(SS_HTTPRequest)
Line 161 of RequestHandler.php
* RequestHandler->handleRequest(SS_HTTPRequest)
Line 161 of RequestHandler.php
* RequestHandler->handleRequest(SS_HTTPRequest)
Line 147 of Controller.php
* Controller->handleRequest(SS_HTTPRequest)
Line 282 of Director.php
* Director::handleRequest(SS_HTTPRequest,Session)
Line 125 of Director.php
* Director::direct(/admin/EditForm/field/DPSNewsArticles/item/2/edit)
Line 127 of main.php

Avatar
UncleCheese

Forum Moderator, 4096 Posts

28 January 2011 at 9:48am

Are you sure this is what you want??

static $has_one = array (
'DPSNewsArticlePage' => 'DPSNewsArticle'
);

Look at that closely.

Avatar
Hello_electro

Community Member, 80 Posts

29 January 2011 at 8:11am

Doh! Yes, I see it now. I changed to below and it works. Thanks UC. I appreciate you taking time to point this out. I actually like that you turned it back on me to see it. Good way to learn form my mistake.

static $has_one = array (
'DPSNewsArticlePage' => 'DPSNewsArticlePage'
);