Are you ever going to have anything deeper than 2 levels? Are any of your child pages going to have children of their own?
If so the two table approach isn't even an option.
Even if you wont be going deeper I highly recommend not having more than one table. Even if the initial setup might be a little steeper it will be much easier to work with in the long run.
There are two common patterns for storing hierarchical data in a relational database.
The first is the Adjacency List model which is what you posted as your first example . The advantage to this patter is that it is very easy to move a node from one parent to another. It is also easy to understand and doesn't require any fancy algorithms to work with. The disadvantage is that pulling the full tree is a much heavier operation that can often require recursion or extra looping and thus is pretty slow.
The second is the Nested Set pattern. This is a bit more difficult to explain so I'll just link to wikipedia. https://en.wikipedia.org/wiki/Nested_set_model
The advantage of the nested set pattern is that you can pull the full tree easily and thus faster. The disadvantage is that it isn't a very easy algorithm to understand at first. It is also a lot more expensive to move or modify nodes as more than one record needs to be updated. There are two good laravel implementations of the nested set model, Laravel Nestedset and Baum. These would take most of the difficulty out of implementing the pattern.
If you wont ever need anything deeper than just parent child pages the adjacency list model is probably a better fit but as soon as you go deeper I would recommend using the nested set pattern.