在fuelphp中调用自定义观察者

时间:2013-10-22 09:55:54

标签: orm fuelphp

我创建了一个自定义Observer:

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 [Error]:未捕获的异常'Fuel \ Core \ FuelException'   消息'无法创建或写入日志文件。请检查   权限   / Applications / XAMPP / xamppfiles / htdocs / MPOSSERVER / fuel / app / logs /'in   /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/log.php:77   堆栈跟踪:#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')#5   /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/classes/error.php(117):   记录器(400,'错误 - 观察......')#6   /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER/fuel/core/bootstrap.php(71):   燃料\核心\错误:: exception_handler(对象(UnexpectedValueException))

当我打电话给观察员时,我认为我错了,创建观察者的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

正如我所看到的,错误表明没有足够的权限写入该目录,并且观察者本身正在工作。确保,只需用像die('WORKS!')之类的东西替换Log ::()调用;代替。

要解决此问题,以便日志开始编写,请尝试修复目录权限。我不确定MacOSX如何处理这个问题,但这可能会在这里找到代码:

cd /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER

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

第一个命令将cd到你的web项目 2nd将使该目录中的所有文件chmod为666(每个人都读/写) 第3个命令将由所有人进行读/写/执行

希望有所帮助 祝你好运:)