簡體   English   中英

在雜貨堆中進行一些邏輯運算后如何插入數據

[英]how to insert data after some some logical operation in grocery crud

我對雜貨雜貨店非常陌生。我在insert_before_callback上的邏輯運算遇到了一些問題

我有一個產品表,當我銷售產品時,它將檢查該產品的可用性。如果有,則將其插入數據庫

        $crud = new grocery_CRUD();
    //$crud->set_subject('Guards');
    $this->grocery_crud->set_table('chalan')
        ->set_subject('Chalan')
        //->fields('Date','cid','pid','voucher','qnty','Amount','Paid Amount','Due Amount','Remarks')
        ->columns('cdate','cid','eid','pid','voucher','qnty','price','Amount','paid','Due Amount','Check','remark')
        ->display_as('cdate','Date')
        ->display_as('check','Check')
        ->display_as('cid','Customer Name')
        ->display_as('voucher','Chalan No.')
        ->display_as('eid','Employee Name')
        ->display_as('pid','Item Name')
        ->display_as('qnty','Quantity')
        ->display_as('price','Price')
        ->display_as('remark','Remark')
        ->set_relation('eid','employee','name')
        ->set_relation('cid','Customer','name')
        ->set_relation('pid','product','name')
        ->callback_column('Amount',array($this,'_total_amount'))
        ->callback_column('Due Amount',array($this,'_due_amount'))
        ->set_rules('qnty','Quantity','numeric')
        ->set_rules('eid','Employee','String')
        ->set_rules('pid','Product','String')
        ->set_rules('qnty','Quantity','numeric')
        ->set_rules('cdate','Date','date')
        ->callback_before_insert(array($this,'_checkAvaiability'))
        ->unset_delete();
    //$crud->display_as('sec_guard_master_id','Guard Name');
    $output = $this->grocery_crud->render();
    //$data['viewName']="welcome";
    $this->load->view('search',$output);

這是我的_checkAvaiability邏輯

function _checkAvaiability($post_array){
    $total=100; // just for test
    if($post_array['qnty']>$total){
        return false;
    }
}

它運行時沒有任何過濾,並且總是在產品超過總值時插入數據。如果有人解決了這個問題,這將非常有幫助

請注意,如果您返回false,則callback_before_insert不會停止插入(實際上,此回調必須返回一個數組,其中包含將在插入操作之后使用的插入操作中使用的值)。

如果您需要在插入之前進行一些邏輯驗證(為了不允許基於您的邏輯執行該插入),則可以執行以下兩項操作:

1)創建一個自定義驗證規則,並使用set_rules http://www.grocerycrud.com/documentation/options_functions/set_rules添加它

我認為這很容易做到

2)您可以使用callback_insert實現完全自定義的插入操作。 此回調會轉義CRUD的自動插入,並僅運行插入的回調。

http://www.grocerycrud.com/documentation/options_functions/callback_insert

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM