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