2011-11-20 107 views
1

我该如何调试我的回调脚本?在杂货店调试CRUD

我有一个deal_management功能,做杂货CRUD

和我有一个

callback_after_insert(array($this, ‘insert_coupon_codes’)); 

,因为在数据库中插入未在我的功能insert_coupon_codes工作,我也没有办法知道或查看我的SQL。

是否有任何功能,我可以调试我的PHP脚本里面的回调函数没有任何黑客?

我做过print_r()var_dump()但这些似乎不起作用回调函数中。

回答

5

首先确保call_user_func在您的函数中正常工作。因此,举例来说,您可以试试这个:

function just_a_test() 
{ 
    call_user_func(array($this,'insert_coupon_codes')); 
} 

function insert_coupon_codes($post_array = array(), $primary_key = null) 
{ 
    echo "Just a test"; 
    die(); 
    //Your code here 
} 

回调中的问题是当出现问题时没有显示错误。例如,如果您有

call_user_func(array($this,'test2')); 

test2函数不存在。但是在任何地方都没有错误。

如果一切顺利,您可以简单地使用简单的黑客来调试插入/更新。

在grocery CRUD插入/更新/删除是ajax调用,所以要调试您的项目,您必须使用firefox萤火虫进行调试。 你可以让你的var_dump或print_r看到你的firebug的ajax调用响应。如果你不熟悉如何使用萤火虫, 我有一个调试小黑客解决方案。

只需转到您的添加或编辑表单并禁用所有javascripts (您可以下载Web Developer for firefox,然后单击禁用>禁用Javascript>所有Javascript)。 然后,如果刷新表单添加或编辑并推送提交,那么在视图中将出现ajax请求。 所以你可以看到你的var_dump或print_r。

仍杂货CRUD不支持回调调试,所以我认为它现在是一个很好的解决方案。除此之外,您可以随时轻松使用codeigniter的log_message功能进行调试。更多你可以看到在http://ellislab.com/codeigniter/user-guide/general/errors.html

+0

嗨约翰,我对调试SQL非常感兴趣。你能否更深入地解释第二段?我已经尝试了这些步骤,并且我得到了一个包含{{success:true,success_message:您的数据已被存储,以及更多字段}的json的框但我看不到任何SQL。它应该在哪里? – voghDev