2011-11-20 103 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