在Grocery CRUD中调试

时间:2011-11-20 11:59:58

标签: codeigniter crud

如何调试我的回调脚本?

我有一个处理杂货CRUD的deal_management函数

我有一个

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

因为数据库中的插入在我的函数insert_coupon_codes中不起作用,所以我无法知道或查看我的SQL。

是否有任何功能可以在回调函数中调试我的php脚本而不会有任何黑客攻击?

我做了print_r()var_dump(),但这些似乎不适用于回调函数。

1 个答案:

答案 0 :(得分:6)

首先确保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函数不存在。但是在任何地方都没有错误。

如果一切顺利,您只需简单地修改插入/更新即可。

在杂货店CRUD中,插入/更新/删除是一个ajax调用,所以要调试你的项目,你必须使用firefox firebug进行调试。 您可以拥有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