我已经将我的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
我一直在努力寻找接下来几天的解决方案,但似乎找不到。非常感谢您的帮助!
错误彼此无关。通过简单地将该方法设置为静态,php会显示下一个错误。
您的Menu_Model
声明不正确。它可以与ORM_Core::validate
Menu_Model::validate(/*bad: array & */ Validation $array, $save = false)