Неустранимая ошибка: вызов функции-члена url() для необъекта в строке 8

Я новичок в PHP, в настоящее время получаю сообщение об ошибке

Неустранимая ошибка: вызов функции-члена url() для необъекта в строке 8

Ниже приведен код, который я пытаюсь

<?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>';
   }
?>

2 ответа

Решение

Вот ваш код исправлен:

<?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->children() перечислить всех детей сайта Смотрите документацию kirby
  • Вы определяете $image_url а также $title перед foreach, который не является правильным. Я переместил их только в начале цикла foreach. Также исправлено image_url, чтобы использовать подстраницы вместо подстраниц.
  • Вы используете text() на вашем названии. Этого не существует, используйте либо kirbytext() или же html() в зависимости от того, что вы хотите сделать. Смотрите документы.

Вы должны проверить, каковы значения и методы в $subpages? Я думаю, что есть проблема, когда вы присваиваете значения переменной.

Другие вопросы по тегам