【问题标题】:Fatal error: Call to a member function url() on a non-object on line 8致命错误:在第 8 行调用非对象上的成员函数 url()
【发布时间】:2016-02-09 10:49:19
【问题描述】:

我是 PHP 新手,目前收到错误提示

致命错误:在第 8 行调用非对象上的成员函数 url()

下面是我正在尝试的代码

<?php
   $subpages = $site->pages()->children()->visible();
   $image_url = $subpages->image()->url();
   $title = $subpage->title()->text();

   foreach($subpages as $subpage) {
      echo '<div class="col-md-4">';
      echo '<h2>' . $title . '</h2>';
      echo '<a href="' . $subpage->url() . '" title="' . $title . '">';
      echo '<img src="' . $image_url . '" alt="' . $title . '" class="img-responsive img-thumbnail">';
      echo '</a>';
      echo '</div>';
   }
?>

【问题讨论】:

  • 你不能使用这样的对象。检查如何使用对象及其属性。

标签: php foreach kirby


【解决方案1】:

您的代码已更正:

<?php
   $subpages = $site->children()->visible();
   foreach($subpages as $subpage) {
   $image_url = $subpage->image()->url();
   $title = $subpage->title()->html();
      echo '<div class="col-md-4">';
      echo '<h2>' . $title . '</h2>';
      echo '<a href="' . $subpage->url() . '" title="' . $title . '">';
      echo '<img src="' . $image_url . '" alt="' . $title . '" class="img-responsive img-thumbnail">';
      echo '</a>';
      echo '</div>';
   }
?>

你的代码有什么问题:

  • 您应该使用$site-&gt;children() 列出该站点的所有子项 See kirby docs
  • 您在 foreach 之前定义了 $image_url$title,这是不正确的。我在 foreach 的开头移动了它们 环形。还更正了 image_url 以使用子页面而不是子页面。
  • 您在标题上使用了text()。那不存在,使用kirbytext()html() 取决于你想要做什么。见 文档。

【讨论】:

    【解决方案2】:

    您应该检查 $subpages 中的值和方法是什么?我认为将值分配给变量时存在问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 2013-11-25
      • 2012-05-30
      • 2016-08-30
      • 2015-02-06
      • 2012-05-14
      • 2013-11-19
      相关资源
      最近更新 更多