我们正在使用基于php的CMS Kirby,但我们无法理解我们可以(并且不能)使用链接的地方(当涉及到php时我们非常环保)。
我们有这样的产品部分:
|_Shop
|_Sheets
|_Sheet one
|_Sheet two
|_Bed spreads
|_Bed spread one
|_Bed spread two
正在尝试提供每个类别下所有产品子页面的列表。
我们如何做到这一点?
我们一直看到很多“对非对象的成员函数的调用”错误,我们假设这与我们链接事物的方式有关 - 例如我们尝试了很多方法,但目前正在尝试:
$productPages = $pages->findByDirname('sheets, duvet-covers, bed-spreads, pillowcases, table-linen');
但我们不确定如何找到这些网页的子代,将->visible()->children()
添加到$pages
的上方或foreach循环中,这会导致错误:
<?php foreach($productPages->visible()->children() as $pageList) : ?>
此外,我们可以看到$ page变量包含->visible()->children()
变量,因此我们假设我们需要将$productPages
变量移交给$page
变量,以便我们可以使用{{1但不确定如何构建对不起的东西。
非常感谢任何正确方向的指示。
干杯
答案 0 :(得分:1)
使用Call to a member function on a non-object
时出现$productPages->visible()->children()
错误的原因是$productPages
不包含任何网页结果。
我认为那是因为你正在使用findByDirname
- 我不相信这会采用这样的列表。如果确实如此,该功能也需要使用该号码。
您最好使用采用uri路径的$pages->find($uri, [$anotherUri])
,而不是dirname。
或者$pages->findByUID('sheets', 'bed-spreads', 'pillowcases')
这是dirname但没有数字。
查看kirby备忘单 - http://getkirby.com/content/02-docs/kirby-cheatsheet.pdf
希望能让你朝着正确的方向前进。