- concrete5 Cookbook
- David Strack
- 344字
- 2021-08-13 16:15:54
Getting a Page object by its ID
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.
Getting ready
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.
How to do it...
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);
How it works...
The page ID (also known as collection ID) is unique in the database, so calling the getByID
function will load the correct page data and return a Page
object that you can interact with.
See also
- The Getting the current Page object recipe
- The Getting a Page object by its path recipe
- The Modern C++ Challenge
- Learning Chef
- 實戰低代碼
- Android開發三劍客:UML、模式與測試
- 軟件供應鏈安全:源代碼缺陷實例剖析
- SciPy Recipes
- 從程序員角度學習數據庫技術(藍橋杯軟件大賽培訓教材-Java方向)
- Python自然語言理解:自然語言理解系統開發與應用實戰
- Appcelerator Titanium:Patterns and Best Practices
- Visual C++從入門到精通(第2版)
- IBM RUP參考與認證指南
- Microsoft Dynamics GP 2013 Cookbook
- Getting Started with JUCE
- Unity Certified Programmer:Exam Guide
- 軟件定義存儲:原理、實踐與生態