0

我创建了一个自定义观察者:

class Observer_Test extends Orm\Observer 
{    
    public function after_insert(Orm\Model $model)
    {
        \Log::info('Succesfully created new object of class '.get_class($model));
    }
}

我把这段代码放进去app/classes/observer/test.php

app/classes/model/ 我在我的观察者中从我的模型中调用

protected static $_observers = array(
     'Observer\Observer_Test' => array(
           'events' => array('after_insert'),
     ),            
); 

我收到这样的错误消息

ErrorException [错误]:未捕获的异常“Fuel\Core\FuelException”,带有消息“无法创建或写入日志文件。请检查 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/log.php:77 中 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/app/logs/' 的权限 堆栈跟踪:# 0 [内部函数]:Fuel\Core\Log::_init() #1 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/autoloader.php(364): call_user_func('Log::_init' ) #2 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/autoloader.php(247): Fuel\Core\Autoloader::init_class('Log') #3 [内部函数]: Fuel\Core \Autoloader::load('Log') #4 /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/base.php(91): spl_autoload_call('Log'

我认为当我调用或放置观察者时我错了,创建观察者的最佳实践是什么?

4

1 回答 1

0

如我所见,错误表明没有足够的权限写入该目录,并且观察者本身正在工作。为了确保,只需将 Log::() 调用替换为 die('WORKS!'); 反而。

要解决此问题,以便开始写入日志,请尝试修复目录权限。我不确定 MacOSX 是如何处理这个问题的,但这可能会让你输入代码:

cd /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER

find . -type f -exec chmod 666 {} \;
find . -type d -exec chmod 777 {} \;

第一个命令将 cd 到您的 web 项目第二个将使该目录中的所有文件 chmod 为 666(每个人都可以读/写)第三个命令将使每个人都可以读/写/执行

希望有帮助祝你好运:)

于 2013-10-22T16:29:38.547 回答