【发布时间】:2020-02-27 19:25:55
【问题描述】:
我已将我的 Kohana 2.3.4 安装移至使用 php7 的新主机(可能这是问题的根源),现在我收到以下错误:
Uncaught PHP Error: Non-static method AdminHook::menu_tree() should not be called statically in file system/core/Event.php on line 209
这是我在第 209 行附近的 Event.php(call_user_func($callback); 在第 209 行):
public static function run($name, & $data = NULL)
{
if ( ! empty(self::$events[$name]))
{
// So callbacks can access Event::$data
self::$data =& $data;
$callbacks = self::get($name);
foreach ($callbacks as $callback)
{
call_user_func($callback); // LINE 209
}
// Do this to prevent data from getting 'stuck'
$clear_data = '';
self::$data =& $clear_data;
}
// The event has been run!
self::$has_run[$name] = $name;
}
这里是 AdminHook 类:
class AdminHook {
public function menu_tree(){
$session = Session::instance();
if(isset($_GET['_ml']) AND $_GET['_ml'] == 1) {
$session->set('menuLink', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
//url::redirect(url::current());
}
global $menuLink;
$menuLink = $session->get('menuLink');
}
}
如果我将 menu_tree 函数设置为静态,我会收到以下错误:
Uncaught PHP Error: Declaration of Menu_Model::validate(array &$array, $save = false) should be compatible with ORM_Core::validate(Validation $array, $save = false) in file application/models/menu.php on line 18
在接下来的几天里,我一直在努力寻找解决方案,但似乎找不到。非常感谢任何帮助!
【问题讨论】: