代码之家  ›  专栏  ›  技术社区  ›  Dennis Farandy

调用fuelphp中的自定义观察器

  •  0
  • Dennis Farandy  · 技术社区  · 11 年前

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

    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]:未捕获异常“燃料\核心\燃料异常” 显示消息“无法创建或写入日志文件”。请检查 上的权限 /Applications/XAMPP/xamplepfiles/htdocs/MPOSSERVER/fuel/app/logs/中的 /Applications/XAMPP/examplefiles/htdocs/MPOSSERVER/fuel/core/classes/log.php:77应用程序 堆栈跟踪:#0[内部函数]:燃料\核心\日志::_init()#1 /Applications/XAMPP/examplepfiles/htdocs/MPOSSERVER/fuel/core/calasses/autoloader.php(364)应用程序: call_user_func('Log::_init')#2 /Applications/XAMPP/examplefiles/htdocs/MPOSSERVER/fuel/core/calasses/autoloader.php(247): 燃料\堆芯\自动加载器::init_class('Log')#3[内部函数]: 燃料\堆芯\自动加载器::加载(“日志”)#4 /Applications/XAMPP/examplepfiles/htdocs/MPOSSERVER/fuel/core/base.php(91): spl_autoload_call(“日志”)#5 /Applications/XAMPP/examplepfiles/htdocs/MPOSSERVER/fuel/core/classes/error.php(117): 记录器(400,“错误-观察…”)#6 /Applications/XAMPP/examplepfiles/htdocs/MPOSSERVER/fuel/core/bootstrap.php(71): 燃料\核心\错误::exception_handler(对象(意外值异常))

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

    1 回复  |  直到 11 年前
        1
  •  0
  •   huglester    11 年前

    正如我所看到的,错误表明没有足够的权限写入该目录,而observer本身正在工作。为了确保这一点,只需将Log::()call替换为die('WORKS!');相反

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

    cd /Applications/XAMPP/xamppfiles/htdocs/MPOSSERVER
    
    find . -type f -exec chmod 666 {} \;
    find . -type d -exec chmod 777 {} \;
    

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

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