我创建了一个自定义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))
当我打电话给观察员时,我认为我错了,创建观察者的最佳做法是什么?
答案 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个命令将由所有人进行读/写/执行
希望有所帮助 祝你好运:)