Concrete5 package helper - How to fix Fatal error: Call to undefined method NavigationHelper::getURLSegment() error?
Concrete5 package helper - How to fix Fatal error: Call to undefined method NavigationHelper::getURLSegment() error?
抱歉,我们已经查看了一百万个答案,但我们要么不理解它们,要么它们不适用。
导航助手:
我们有一个 concrete5 包并在以下位置创建了一个帮助文件:
/packages/package-name/helpers/navigation.php
它包含以下内容:
<?php defined('C5_EXECUTE') or die('ACCESS DENIED') ?>
<?php
class NavigationHelper {
// Get URL segments
public function getURLSegments() {
return explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
}
// Get a specific URL segment
public function getURLSegment($n) {
$segs = $this->getURLSegments();
return count($segs) > 0 && count($segs) >= ($n-1)?$segs[$n]:'';
}
}
加载助手
然后我们有一个元素文件,我们在其中加载包助手,如下所示:
$navHelper = Loader::helper('navigation','package-name');
调用方法
但是当我们尝试调用这样的方法时:
if ($navHelper->getURLSegment(1) == 'whats-on') {
echo "What's on";
}
我们看到:
Fatal error: Call to undefined method NavigationHelper::getURLSegment()
我们已经关注方法和包名称一个小时了,所以显然缺少一些基本的东西 - 我们缺少什么?
如有任何帮助,我们将不胜感激。
干杯
本
对于遇到此问题的任何其他人,自定义工具文件不能与 C5 工具具有相同的文件名。
navigation.php
已经被 C5 使用,所以更改我的自定义文件的文件名使这一切都有效。
抱歉,我们已经查看了一百万个答案,但我们要么不理解它们,要么它们不适用。
导航助手:
我们有一个 concrete5 包并在以下位置创建了一个帮助文件: /packages/package-name/helpers/navigation.php
它包含以下内容:
<?php defined('C5_EXECUTE') or die('ACCESS DENIED') ?>
<?php
class NavigationHelper {
// Get URL segments
public function getURLSegments() {
return explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
}
// Get a specific URL segment
public function getURLSegment($n) {
$segs = $this->getURLSegments();
return count($segs) > 0 && count($segs) >= ($n-1)?$segs[$n]:'';
}
}
加载助手
然后我们有一个元素文件,我们在其中加载包助手,如下所示:
$navHelper = Loader::helper('navigation','package-name');
调用方法
但是当我们尝试调用这样的方法时:
if ($navHelper->getURLSegment(1) == 'whats-on') {
echo "What's on";
}
我们看到:
Fatal error: Call to undefined method NavigationHelper::getURLSegment()
我们已经关注方法和包名称一个小时了,所以显然缺少一些基本的东西 - 我们缺少什么?
如有任何帮助,我们将不胜感激。
干杯
本
对于遇到此问题的任何其他人,自定义工具文件不能与 C5 工具具有相同的文件名。
navigation.php
已经被 C5 使用,所以更改我的自定义文件的文件名使这一切都有效。