In many situations, you will need to load a Page
object using its unique numerical ID from the database. As mentioned earlier, pages are actually extensions of the Collection
object, so you will actually be loading the page by its collection ID.
We will need to know the numerical ID of the page that you are attempting to load. Often this will be stored in other objects, perhaps even a custom entity that you have stored in the database. For example, say you have a recipes table in the database, and each recipe has its own page in the concrete5 website. You store the page ID for each recipe, so you can load the relevant Page
object whenever necessary.
First you will have to get the page ID for the Page
object that you are trying to load. For this example, we will just hard-code the ID of the page that we are loading. The steps are as follows:
Open
/config/site_post.php
in your favorite code editor.First, let's store the ID of the page we are loading into a variable. In real-world use, you will likely have this ID stored in a database table, or available from some other code that you have run. The ID of the home page in concrete5 defaults to
1
, so we will use that for our page's ID:$pageId = 1; // load the home page
Now that we have the ID of the page that we need to load, use the
getByID
function to get thePage
object that we need:$page = Page::getByID($pageId);
We can inspect the
$page
variable and verify that it contains aPage
object.my_debug($page);