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

Problem with DOM PopUp Display [solved]


Go to End
Reply


3 Posts   1015 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, 4102 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'
);