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.

Data Model Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Getting Error and Returned value with DataObject::get

Go to End



Community Member, 36 Posts

26 December 2009 at 8:38am

Hey crew,

Merry Christmas guys! I hope you've all had a great christmas.

I have an issue and need some help to resolve something which is in the way of my progression with developing a module:

public function getRelatedArticles($currentDoc=false) {

			//$currentDoc is a string taken from the URL to define the Article name
			$currentTitle = str_replace('-',' ',$currentDoc);
			$currentArticle = DataObject::get_one('ArticleManagerArticle' , '`Title` = \''.$currentTitle.'\'');

		//'Tags' is part of the DataObject set for each Article

		$QueryTags = explode(" ", $currentArticle->Tags);
		$i = 0;
		$numValues = count($QueryTags);
		$RelatedArticles = new DataObjectSet();
		while($i < $numValues) {
			$QueryTag = '%'.$QueryTags[$i].'%';
			$RelatedArticle = DataObject::get('ArticleManagerArticle','`Title` LIKE \''.$QueryTag.'\'');
		return $RelatedArticles;

So the 2 things that are occurring here is:

1. '$currentArticle->Tags' returns the DataObject set value (e.g "Article Important News Story") AND returns this error "[Notice] Trying to get property of non-object", this is because the value $currentTitle doesn't match the DataObject entry 'Title' exactly (it's lower case). But why does it matter!? I'm still getting the value I want to continue to function...?

2. Can someone assist me with populating my new DataObject inside the while loop? Basically I want to loop to call every article it can related to each word in the 'Tags' string and then let me display them in a template inside

<% control RelatedArticles %>$Title<% end_control %>

currently my DataObject $RelatedArticles set isn't being created correctly :(?

Sorry about the big post! Feel free to comment on anything inside the question as any and all solutions or comments are very welcome!