【问题标题】:Debugging in Grocery CRUDGrocery CRUD 中的调试
【发布时间】:2011-11-20 11:59:58
【问题描述】:

如何调试我的回调脚本?

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

我有一个

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

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

是否有任何函数可以让我在回调函数中调试我的 php 脚本而无需任何黑客攻击?

我做了print_r()var_dump(),但它们似乎在回调函数中不起作用。

【问题讨论】:

    标签: codeigniter crud


    【解决方案1】:

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

    如果一切顺利,您可以通过简单的 hack 来调试您的插入/更新。

    在杂货店 CRUD 中,插入/更新/删除是一个 ajax 调用,因此要调试您的项目,您必须使用 firefox firebug 对其进行调试。 您可以使用 var_dump 或 print_r 并查看来自 firebug 的 ajax 调用响应。如果你不熟悉如何使用 firebug, 我有一些用于调试的黑客解决方案。

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

    仍然杂货 CRUD 不支持回调调试,所以我认为它现在是一个很好的解决方案。除此之外,无需破解即可进行调试,您始终可以轻松拥有 codeigniter 的 log_message 功能。更多内容请访问http://ellislab.com/codeigniter/user-guide/general/errors.html

    【讨论】:

    • 嗨,John,我对调试 SQL 非常感兴趣。你能更深入地解释第二段吗?我已经尝试了这些步骤,并且得到了一个包含 {success:true, success_message: your data has been stored, and more fields} 的 json 框,但我看不到任何 SQL。应该在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多