# findBy('uri) vs find()

**URL:** <https://forum.getkirby.com/t/findby-uri-vs-find/6747>\
**Category:** Questions\
**Tags:** v2\
**Created:** [February 25, 2017, 6:42am UTC](https://forum.getkirby.com/t/findby-uri-vs-find/6747 "2017-02-25T06:42:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![gvocale](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/gvocale/32/1277_2.png) [@gvocale](https://forum.getkirby.com/u/gvocale)\
**Post date:** [February 25, 2017, 6:42am UTC](https://forum.getkirby.com/t/findby-uri-vs-find/6747/1 "2017-02-25T06:42:19Z")

</div>

I am trying to find a bunch of pages via Uri.

The pages are stored into:  
content/collection/A/page-name

If I do:  
$foundPage = page(‘collection’)-\>grandChildren()-\>findBy(‘uid’, ‘page-name’)  
I do manage to find the page

If instead I do:  
$foundPage = page(‘collection’)-\>grandChildren()-\>find(‘page-name’)  
Nothing gets found.

How come?

I would like to find a way to make find() work because I have to find multiple pages from an array of uids.

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [February 25, 2017, 7:16am UTC](https://forum.getkirby.com/t/findby-uri-vs-find/6747/2 "2017-02-25T07:16:00Z")

</div>

> [@gvocale](#):
>
> $foundPage = page(‘collection’)-\>grandChildren()-\>find(‘page-name’)

You can’t use `find()` with grandchildren, I think. This would work:

```auto
$foundPage = page('collection/A')->children()->find('page-name');

```

---

<div class="post-metadata">

**Author:** ![distantnative](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/distantnative/32/11319_2.png) [@distantnative](https://forum.getkirby.com/u/distantnative)\
**Post date:** [February 6, 2025, 4:52pm UTC](https://forum.getkirby.com/t/findby-uri-vs-find/6747/3 "2025-02-06T16:52:30Z")

</div>


