Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 610
  • Last Modified:

PHP MVC Basics OOP. How to return Array of Object class.

Source code for Model View Controller Tutorial in PHP: http://php-html.net/tutorials/model-view-controller-in-php/

I was trying to replace this:
 
		//return array(
		//	"Jungle Book" => new Article("Jungle Booking", "R. Kipling", "2012-03-01", "A classic book.", "http://www.jungle.com"),
		//	"Moonwalker" => new Article("Moonwalker", "J. Walker", ""),
		//	"PHP for Dummies" => new Article("PHP for Dummies")
		//);

Open in new window


with this:

// Return Array of the objects inside the client's container
$objs = $container->list_objects();

$allArticles=array();

for ($i = count($objs)-1; $i >= 0; $i--) { 

$tempObject = new Article();
$tempObject -> Title=$objs[$i];
$tempObject -> Author="Testing Author";

$allArticles[$i] = $tempObject;

}

return array($allArticles);

Open in new window



But the results are not show. How can I also have the Title of the Article as variable instead of $tempObject.
0
glynco
Asked:
glynco
  • 3
  • 2
  • 2
1 Solution
 
glyncoAuthor Commented:
I tried this but it still do not show in the articlelist.php

$tempObject = new Article();
$tempObject -> title=$objs[$i];
array_push($articles[get_class($tempObject)], $tempObject);

Open in new window


and here is the articlelist.php

foreach ($articles as $title => $article)
		{
			echo '<tr><td><a href="index.php?article='.$article->title.'">'.$article->title.'</a></td><td>'.$article->author.'</td><td>'.$article->description.'</td></tr>';
		}

Open in new window

0
 
Ray PaseurCommented:
From the second code snippet at the original post, line 3
$allArticles=array();

Open in new window

and line 16
return array($allArticles);

Open in new window

I would surmise that the method returned an array, containing one element, and that one element was an array containing the contents of the $allArticles array.

You can use var_dump() to print out variables and learn what they are made of.
0
 
Slick812Commented:
greetings again glynco, , you seem to be trying to learn about making a programming "Structure" for the MVC using OOP as in the Tutorial you gave a web link for.  You are trying to do a substitution for the tutorial  return array, it seems you do not understand some of the core programming methods for Arrays and Objects in PHP.  It looks like you changed the tutorial "Books" naming convention to "Articles" naming for your instance. They have this code -

return array(  
            "Jungle Book" => new Book("Jungle Book", "R. Kipling", "A classic book."),  
            "Moonwalker" => new Book("Moonwalker", "J. Walker", ""),  
            "PHP for Dummies" => new Book("PHP for Dummies", "Some Smart Guy", "")  
        );

Open in new window


Which you seem to want to KNOW how that code works and to have it be useful to you for your Articles Object. However, The tutorial does NOT do a good job of showing you how to use Object storage for Items (books, Articles, etc.) and using a VIEW class to list the storage Items.
You may need to learn about Array and Object methods before you get into MVC programming.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Slick812Commented:
Oh sorry, I do not have time today, but tomorrow, maybe some php object code for this sort of thing.
0
 
glyncoAuthor Commented:
foreach ($articles['Article'] as $my_object)
{
    $title = (string)$my_object->title;
    $my_associative_array[$title] = $my_object;
}
0
 
glyncoAuthor Commented:
Thanks.
0
 
Ray PaseurCommented:
Was there something wrong here?  Why did you mark the grade down to a "B" ?

Here are the EE grading guidelines.
http://www.experts-exchange.com/help/viewHelpPage.jsp?helpPageID=26
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now