Page Update Examples

Updating Pages in Notion with properties is exactly the same as the Page Creation:
Just create a Page object and set specific properties. First parameter is always your $property_key. The $property_key is your given title of the property within your table in Notion.
Always make sure the title of the properties match exactly with your database.

In addition to that you need to set the $pageId of the page you want to update.
All properties you don't set for the update will not be touched/changed

✨ Below a summary of how to set all properties within a page.

Page Update - In Database

$page = new Page();

# !Important for updating the page
$page->setId($pageId);

# property: title
$page->setTitle("Name", "I was created by you");

# property: multi_select
$page->setMultiSelect("Tags", ["awesome"]);

# property: select
$page->setSelect("Created from", "Laravel");

# property: text
$page->setText("Comment", "Isn't this awesome?");

# property: checkbox
$page->setCheckbox("Is this great?", true);

# property: relation
$page->setRelation("Connected Pages of other Notion-DB", [$id_of_other_notion_database_page, $id_of_other_notion_database_page2]);

# property: people
$page->setPeople("Responsible People", [$user_id_of_connected_user, $user_id_of_connected_user2]);

# property: url
$page->setUrl("Website", "https://5amco.de");

# property: email
$page->setEmail("Contact E-Mail", "you.are.awesome@5amco.de");

# property: number
$page->setNumber("Invoice Sum", 500);

# property: phone_number
$page->setPhoneNumber("Contact Number", "+49 123456789");

# property: date
$page->setDate("Date Property", new \DateTime());

# property: datetime
$page->setDateTime("Date Property (with Time)", new \DateTime());

\Notion::pages()->update($page);

Page Update - Alternative way of settings properties

If you don't like to set the properties with a specific method in page, you can always use a generic method and instantiate the properties with a static method.
Just make sure you add the property-class to your imports.

use FiveamCode\LaravelNotionApi\Entities\Properties\Title;

$page = new Page();

# !Important for updating the page
$page->setId($pageId);

# property: title
$page->set("Name", Title::value("I was created by you"));

# [...] Basically the same as in the above example.
\Notion::pages()->update($page);